当前位置:   article > 正文

hadoop集群配置_hadoop profile.d

hadoop profile.d

完全分布式平台搭建

尚硅谷丨大数据Hadoop 3.x(2021全新升级/部署+源码+实战)

1、基础配置

  1. 配置ip
    如果修改同个局域网下电脑时
    首先将虚拟机改为桥联
    其次bootproto改为静态
    最后需要将他们配置到同一网段即IP地址第三项相同最后一项不同
    网关号最后一位试试1和2

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    
    • 1

    在这里插入图片描述

  2. 修改主机名称并添加主机名称映射
    修改主机名称
    主机名称映射
    重启reboot

  3. 卸载虚拟机自带jdk

  4. 重新安装jdk

  5. 安装hadoop

  6. xshell远程连接服务器通讯
    在这里插入图片描述
    在这里插入图片描述

2、设置文件分发脚本xsync

  1. 在/home/mmm/路径下新建文件夹bin

  2. 向其中填入下列代码

  3. 变换模式为可执行

  4. 将/home/mmm/bin填入环境变量确保任何情况下能够使用

  5. 如果分发需要root权限文件需要使用sudo xsync /home/mmm/xsync 文件路径

    #!/bin/bash 
    
    #1. 判断参数个数 
    if [ $# -lt 1 ]
    then
        echo Not Enough Arguement! 
        exit;
    fi
    #2. 遍历集群所有机器 
    for host in hadoop104 hadoop105 hadoop106
    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    chmod 777 xsync
    
    • 1

3、为集群配置免密通讯

  1. 获取自身公钥私钥

    ssh-keygen -t rsa
    
    • 1
  2. 将自身公钥私钥发送给自身以及其他电脑

    ssh-copy-id hadoop104
    
    • 1
  3. 测试是否配置成功

    ssh hadoop105
    
    • 1
  4. 其他电脑同样进行配置

4、jdk与hadoop环境变量添加与分发

1、进入profile.d

	cd /etc/profile.d/
  • 1

2、新建my_env.sh用于存放环境变量

vim my_env.sh
  • 1

3、向其中添加路径

#JAVA_HOME
export JAVA_HOME=/home/mmm/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/home/mmm/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4、分发至集群xsync my_env.sh
5、分别在每个服务器上重新载入环境变量

source /etc/profile
  • 1

6、将hadoop与jdk分发至集群

5、集群参数配置

  1. 配置core-site.xml
    进入hadoop安装路径/etc/hadoop
    编辑core-site.xml

    vim core-site.xml
    
    • 1

    在configuration中添加如下设置
    注意缩进以及对主机名称的修改

        <!-- 指定NameNode 的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop104:8020</value>
        </property>
    
        <!-- 指定hadoop数据的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/mmm/module/hadoop-3.1.3/data</value>
        </property>
        <!-- 配置HDFS网页登录使用的静态用户为mmm -->
        <property>
            <name>hadoop.http.staticuser.user</name>
            <value>mmm</value>
        </property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  2. 配置hdfs-site.xml
    同样在configuration中插入如下参数
    注意修改主机名称

      <!-- nn web端访问地址-->
      <property>
            <name>dfs.namenode.http-address</name>
            <value>hadoop104:9870</value>
        </property>
      <!-- 2nn web 端访问地址-->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop106:9868</value>
        </property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  3. 配置yarn-site.xml
    同样在configuration中插入如下参数
    注意修改主机名称

        <!-- 指定MR走shuffle -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    
        <!-- 指定ResourceManager的地址-->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop105</value>
        </property>
    
        <!-- 环境变量的继承 -->
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
    
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
    NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
    RED_HOME</value>
        </property>
    
    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop105:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为 7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  4. 配置mapred-site.xml
    同样在configuration中插入如下参数
    注意修改主机名称

    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop104:10020</value>
    </property>
    
    <!-- 历史服务器 web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop104:19888</value>
    </property>
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value>
    </property>
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value>
    </property>
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value>
    </property>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  5. 配置workers
    同样进入当前目录workers
    将其中localhost删除并添加集群所有主机名称

    hadoop104
    hadoop105
    hadoop106
    
    • 1
    • 2
    • 3
  6. 将etc/hadoop文件夹分发至所有服务器

    xsync hadoop安装路径/etc/hadoop
    
    • 1
  7. 初始化集群

    hdfs namenode -format 
    
    • 1

6、集群启动、查询状态与关闭

  1. 编写启动脚本
    进入home/mmm/bin文件夹下创建myhadoop.sh脚本添加下列代码
    注意修改主机名称
    变换为可执行模式chmod 777 myhadoop.sh

    #!/bin/bash
    
    if [ $# -lt 1 ]
    then
            echo "No Args Input..."
            exit;
    fi
    
    case $1 in
    "start")
            echo " =================== 启动 hadoop 集群 ===================" 
            echo " --------------- 启动 hdfs ---------------" 
            ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/sbin/start-dfs.sh"
            echo " --------------- 启动 yarn ---------------" 
            ssh hadoop105 "/home/mmm/module/hadoop-3.1.3/sbin/start-yarn.sh"
            echo " --------------- 启动 historyserver ---------------" 
            ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/bin/mapred  --daemon start historyserver"
    ;;
    "stop")
            echo echo " =================== 关闭 hadoop 集群 ===================" 
            echo " --------------- 关闭 historyserver ---------------" 
            ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/bin/mapred  --daemon stop historyserver"
            echo " --------------- 关闭 yarn ---------------" 
            ssh hadoop105 "/home/mmm/module/hadoop-3.1.3/sbin/stop-yarn.sh"
            echo " --------------- 关闭 hdfs ---------------" 
            ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/sbin/stop-dfs.sh"
    ;;
    *)
        echo "Input Args Error..." 
    ;;
    esac
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
  2. 编写状态查询脚本jpsall
    变换为可执行模式chmod 777 jpsall

    #!/bin/bash
    
    for host in hadoop101 hadoop102 hadoop103
    do  
    	echo =============== $host =============== 
    	ssh $host jps
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  3. 启动集群终端输入myhadoop.sh start

  4. 查询集群状态终端输入jpsall
    显示状态如下
    在这里插入图片描述

  5. 关闭集群终端输入myhadoop.sh stop

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/205490
推荐阅读
相关标签
  

闽ICP备14008679号