Hadoop框架搭建

hadoop框架搭建

  1. 前期准备

    1. 准备hadoop3.3.0.tar.gz

    2. centos7

    3. Xshell7

  2. 开始安装

    • 安装虚拟机

    • 克隆虚拟机出来三台

    • 开始使用时必须切换到root权限下,否则很多东西无法操作

  3. 配置相关的网络设置

    1. 打开网络设置

     vim /etc/sysconfig/network-scripts/ifcfg-ens33 
     TYPE=Ethernet
     PROXY_METHOD=none
     BROWSER_ONLY=no
     静态ip地址
     BOOTPROTO=static
     DEFROUTE=yes
     IPV4_FAILURE_FATAL=no
     IPV6INIT=yes
     IPV6_AUTOCONF=yes
     IPV6_DEFROUTE=yes
     IPV6_FAILURE_FATAL=no
     IPV6_ADDR_GEN_MODE=stable-privacy
     NAME=ens33
     UUID=048a74f6-bffe-498c-8385-e18d3cf4477b
     DEVICE=ens33
     ONBOOT=yes
     ​
     ip地址
     IPADDR=192.168.10.100
     网关
     GATEWAY=192.168.10.2
     DNS服务器
     DNS1=192.168.10.2                 
    1. 配置hosts文件,是得域名和ip可以对应

     vim /etc/hosts
     127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     ​
     ​
     192.168.10.100 hadoop100
     192.168.10.101 hadoop101
     192.168.10.102 hadoop102
     192.168.10.103 hadoop103
     192.168.10.104 hadoop104
     192.168.10.105 hadoop105
     192.168.10.106 hadoop106
     192.168.10.107 hadoop107
     192.168.10.108 hadoop108
     ​
    1. 配置hostname中的文件的内容,修改主机名称

     vim /etc/hostname 
     hadoop100
    1. 重启虚拟机

     reboot
    1. 重启完虚拟机后使用如下命令来观察是否修改完成

     ifconfig
     hostname
    1. 修改windows对应的hosts文件,使得主机和ip可以得以对应

  4. 连接xsheel

    • 使用IP地址或者主机名即可连接

    • 将jdk1.8和hadoop3.3.0拖进去,拖到software文件中,建文件,详情百度

    • 解压jdk

       tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
    • 建立一个配置环境变量的文件夹

     sudo vim /etc/profile.d/my_env.sh
     #JAVA_HOME
     export JAVA_HOME=/opt/module/jdk1.8.0_212
     export PATH=$PATH:$JAVA_HOME/bin
     ​
    • source一下profile,使得环境变量生效

     source /etc/profile
    • java查看命令是否生效

     java -version
     如果不行,则执行
     reboot
    • 解压hadoop

     tar -zxvf hadoop-3.3.0.tar.gz -C /opt/module/
    • 编辑环境变量文件

     sudo vim /etc/profile.d/my_env.sh
     #HADOOP_HOME
     export HADOOP_HOME=/opt/module/hadoop-3.3.0
     export PATH=$PATH:$HADOOP_HOME/bin
     export PATH=$PATH:$HADOOP_HOME/sbin
    • source一下profile,环境变量生效

     source /etc/profile
    • hadoop查看命令

     hadoop version
     如果不行的话
     reboot
  5. 脚本的编写(集群分发脚本)

    • 来到 module目录下

       scp -r jdk1.8.0_212/ walker@hadoop106:/opt/module/
       scp 递归  文件名  用户@主机:路径
       scp -r walker@hadoop105:/opt/module/* walker@hadoop107:/opt/module/
       ​
    • rsync远程同步工具

     rsync -av /opt/module   walker@hadoop105:/opt/module
     远程同步工具,很好用
    • 编写xsync集群分发脚本

    • 回到walker目录下

     mkdir bin
     cd bin
     vim xsync
     #!/bin/bash
     ​
     #1. 判断参数个数
     if [ $# -lt 1 ] 
     then
          echo Not Enough Arguement! 
          exit;
     fi
     #2. 遍历集群所有机器
     for host in hadoop105 hadoop106 hadoop107 
     do
          echo ====================  $host   ====================
          #3. 遍历所有目录,挨个发送
     ​
          for file in $@ 
          do
               #4. 判断文件是否存在
               if [ -e $file ] 
                    then
                        #5. 获取父目录
                        pdir=$(cd -P $(dirname $file); pwd)
     ​
                        #6. 获取当前文件的名称
                        fname=$(basename $file) 
                        ssh $host "mkdir -p $pdir"
                        rsync -av $pdir/$fname $host:$pdir 
                    else
                        echo $file does not exists!
               fi
         done
     done
     ​
    • 赋予xsync权限,此时xsync即可使用

     chmod 777 xsync
    • 分发bin目录下的xsync文件

     sudo ./bin/xsync /etc/profile.d/my_env.sh
    • 分发完成后,记得去source一下profile,使得环境变量生效

     source /etc/profile
  6. SSH免密登录的配置

    • 来到jar目录

    • 使用命令生成密钥对,然后三次回车

     ssh-keygen -t rsa
    • 把公钥传递给其他的两台机器

     ssh-copy-id hadoop106
    • 其他机器和本机也是类似操作,使用ssh先生成密钥对,然后再把公钥分发

    • 在root用户下也是这样,配置ssh免密的登录

  7. 配置文件

    • 配置core-site.xml

     <!-- 指定 NameNode 的地址 -->
         <property>
             <name>fs.defaultFS</name>
             <value>hdfs://hadoop102:8020</value>
         </property>
     ​
         <!-- 指定 hadoop 数据的存储目录 -->
         <property>
             <name>hadoop.tmp.dir</name>
             <value>/opt/module/hadoop-3.3.0/data</value>
         </property>
     ​
         <!-- 配置 HDFS 网页登录使用的静态用户为 walker -->
         <property>
             <name>hadoop.http.staticuser.user</name>
             <value>walker</value>
         </property>
     ​
    • hdfs-site.xml

         <!-- nn web 端访问地址-->
         <property>
             <name>dfs.namenode.http-address</name>
             <value>hadoop102:9870</value>
         </property>
         <!-- 2nn web 端访问地址-->
         <property>
             <name>dfs.namenode.secondary.http-address</name>
             <value>hadoop104:9868</value>
         </property>
     ​
    • yarn-site.xml

         <!-- 指定MR 走 shuffle -->
         <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
         </property>
     ​
         <!-- 指定 ResourceManager 的地址-->
         <property>
             <name>yarn.resourcemanager.hostname</name>
             <value>hadoop103</value>
         </property>
     ​
    • mapred-site.xml

         <!-- 指定 MapReduce 程序运行在 Yarn 上 -->
         <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
         </property>
     ​
    • 配置workers,把主机都写进去,注意不能有空格

     hadoop102
     hadoop103
     hadoop104
    • 分发集群配置

     xsync /opt/module/hadoop-3.3.0/etc/hadoop/
    • 启动日志命令

     mapred --daemon start historyserver
    
  8. 群起集群,集群完成

    • 启动集群,首先格式化

     hdfs namenode -format

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值