栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop3.x入门-搭建3节点分布式集群

Hadoop3.x入门-搭建3节点分布式集群

1.前言

本文档适用于Hadoop3.x版本分布式测试集群搭建。

HDFS组件包括:NameNode、DataNode、SecondaryNameNode

Yarn组件包括:ResourceManager、NodeManager、JobHistory

MapReduce组件包括:JobHistoryServer

2. 集群搭建前提条件

  • 关闭防火墙
  • 确保集群主机节点时间同步(可以安装ntp服务保持集群时间同步)
  • 集群间配好免密,包括免密本地登录(不配置有可能导致namenode和nodemananger启动不起来)
  • 安装JDK,要求jdk1.8(先删除linux自带openjdk)
    #查询openjdk
    rpm -qa|grep java
    #删除查询出来的openjdk
    sudo rpm -e --nodeps java-1.8.0-openjdk..
    #自行安装JDK
    略

  • 主机名设置为全域名,例如:hd1.wdh.com
    #示例:修改主机域名
    sudo hostnamectl set-hostname hd1.wdh.com
    #查验
    hostname
    返回:hd1.wdh.com
    #修改hosts文件
    略
    3. 实验环境

    三节点Hadoop集群

    IP地址

    主机名

    组件

    10.97.63.76

    hd1.wdh.bcdpdev.svc.cluster.local

    NameNode、DataNode、NodeManager、JobHistoryServer

    10.98.98.146

    hd2.wdh.bcdpdev.svc.cluster.local

    DataNode、ResourceManager、NodeManager

    10.100.0.26

    hd3.wdh.bcdpdev.svc.cluster.local

    SecondryNameNode、DataNode、NodeManager

  • NameNode和SecondaryName不要放在一个节点上,SecondaryName作为元数据备份,保证NameNode节点挂掉,SecondaryName可用于恢复元数据。
  • ResourceManager不要和NameNode、SecondaryName不要放在一个节点上,都比较耗费内存,放在一起不合适。

    4.搭建过程 4.1下载hadoop包

    从官网下载hadoop3.3.1的tar包,并上传解压到每个节点服务器上。

    本次实验Hadoop服务器路径为:/opt/module/hadoop-3.3.1

    4.2 添加Hadoop环境变量
    # 每个节点添加hadoop环境变量
    sudo vim /etc/profile.d/my_env.sh
    
    #内容如下:
    export JAVA_HOME=/opt/module/jdk1.8.0_291
    export HADOOP_HOME=/opt/module/hadoop-3.3.1
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    
    #使生效
    source /etc/profile
    
    #验证
    hadoop version
    4.3 修改配置文件

    Hadoop集群有默认四个配置文件,包含了集群的默认配置,分别是core-default.xml、hdfs-default.xml,yarn-default.xml,mapred-default.xml。

    此外用户可自定义配置四大配置文件,覆盖默认配置文件内容,分别是:core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml。

    修改hd1节点hadoop配置:

    cd $HADOOP_HOME/etc/hadoop

    4.3.1 core-site.xml

    vim core-site.xml

    
        
        
            fs.defaultFS
            hdfs://hd1.wdh.bcdpdev.svc.cluster.local:8020
        
    
        
        
            hadoop.tmp.dir
            /opt/module/beh-hadoop-3.3.1/data
        
    
        
        
            hadoop.http.staticuser.user
            dev
        
    
    
    4.3.2 hdfs-site.xml

    vim hdfs-site.xml

    
    
        
        
            dfs.namenode.http-address
            hd1.wdh.bcdpdev.svc.cluster.local:9870
        
        
        
            dfs.namenode.secondary.http-address
            hd3.wdh.bcdpdev.svc.cluster.local:9868
        
    
    
    4.3.3 yarn-site.xml

    vim yarn-site.xml

    
    
    
    
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
    
        
        
            yarn.resourcemanager.hostname
            hd2.wdh.bcdpdev.svc.cluster.local
        
    
        
        
            yarn.nodemanager.env-whitelist
            JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
        
    
    4.3.4 mapred-site.xml

    vim mapred-site.xml

    
    
        
            mapreduce.framework.name
            yarn
        
        
        
            mapreduce.jobhistory.address
            hd1.wdh.bcdpdev.svc.cluster.local:10020
        
        
        
            mapreduce.jobhistory.webapp.address
            hd1.wdh.bcdpdev.svc.cluster.local:19888
        
    
    
    4.3.5 workers

    vim workers   ,  将节点主机名写入

    hd1.wdh.bcdpdev.svc.cluster.local
    hd2.wdh.bcdpdev.svc.cluster.local
    hd3.wdh.bcdpdev.svc.cluster.local
    4.4 同步配置文件

    将配置文件core-site.xml、mapred-site.xml、hdfs-site.xml、yarn-site.xml、workers同步到所有节点hadoop配置中,scp或者sync命令即可。

    4.5 启动Hadoop集群

    4.5.1 格式化NameNode节点

    Hadoop集群第一次启动时,需要进行NameNode格式化。后续集群启动不需要格式化,多次格式化会导致NameNode 的id和 DataNode记录的id不一致,导致集群找不到元数据。如果需要重新格式化,则先停止所有节点的NameNode和DataNode,并删除所有机器的data和logs目录,然后再进行格式化。

    在hd1.wdh.bcdpdev.svc.cluster.local节点执行格式化操作:

    hdfs namenode -format

    无报错,且$HADOOP_HOME目录中多了data和log目录代表格式化成功。

    4.5.2 启动集群
    cd $HADOOP_HOME/sbin

    在namenode节点启动hdfs:  

    ./start_dfs.sh

            启动成功后,访问hdfs web页面:hd1.wdh.bcdpdev.svc.cluster.local:9870

    在resourcemanager节点启动yarn:

    ./start_yarn.sh

            启动成功后,访问yarn web页面:hd2.wdh.bcdpdev.svc.cluster.local:8088

    在jobhistory节点启动jobhistory:

    mapred --daemon start historyserver

            启动成功后,访问MR任务历史服务器:hd1.wdh.bcdpdev.svc.cluster.local:19888

    查看进程情况:jps  ,看每个节点是否包含相应组件进程:

    IP地址

    主机名

    组件

    10.97.63.76

    hd1.wdh.bcdpdev.svc.cluster.local

    NameNode、DataNode、NodeManager、JobHistoryServer

    10.98.98.146

    hd2.wdh.bcdpdev.svc.cluster.local

    DataNode、ResourceManager、NodeManager

    10.100.0.26

    hd3.wdh.bcdpdev.svc.cluster.local

    SecondryNameNode、DataNode、NodeManager

    如果节点上进程不匹配,说明hadoop集群则有问题不能使用,需要自行排查问题,可根据启动提示或者启动日志查看相应报错。

    4.6 测试功能 4.6.1 测试HDFS功能
    #创建一个目录
    hadoop fs -mkdir /wcinput
    #随意上传一个文件,例如wordcount.txt
    hadoop fs -put ./wordcount.txt /wcinput

    HDFS页面查看上传情况:

     4.6.2 测试Yarn功能
    #跑一个wordcount MapReduce测试用例,统计文本中每个英文单词出现的个数
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /wcinput /wcoutput

    HDFS页面查看/wcoutput目录下的结果即可。

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/735737.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号