五、集群配置

1 集群部署规划

  • 集群部署规划

    pcnode01 pcnode02 pcnode03
    HDFS NameNode
    DataNode

    DataNode
    SecondaryNameNode
    DataNode
    YARN
    NodeManager
    ResoureManager
    NodeManager

    NodeManager
  • 注意点

    1. NameNode和SecondaryNameNode很消耗内存,不要安装在同一台服务器
    2. ResourceManager很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上

2 配置文件说明

Hadoop配置文件分为两类:默认配置文件和自定义配置文件。

  • 默认配置文件

    默认文件 文件存放在Hadoop的jar包中的位置
    [core-default.xml] $HADOOP_HOME/share/hadoop/common/hadoop-common-xxx.jar
    [hdfs-default.xml] $HADOOP_HOME/share/hadoop/hdfs/hadoop-hdfs-xxx.jar
    [yarn-default.xml] $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-common-xxx.jar
    [mapred-default-xml] $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-xxx.jar
  • 自定义配置文件

    core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop路径下,用户想修改某一默认配置值时,可以修改自定义配置文件,更改相应属性值。

3 配置集群

3.1 配置核心文件

  • 配置core-site.xml

    cd $HADOOP_HOME/etc/hadoop
    vim core-site.xml
    
  • 修改内容

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
    <!--指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://pcnode01:8082</value>
    </property>
    <!-- 指定Hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/software/hadoop-3.2.2/data</value>
    </property>
    <!-- 配置HDFS网页登录使用的静态用户为 admin-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>admin</value>
    </property>
    </configuration>
    
    
    
  • 分发给其他服务器

    [root@pcnode01 hadoop]# rsync -av ./core-site.xml pcnode02:/opt/software/hadoop-3.2.2/etc/hadoop/
    [root@pcnode01 hadoop]# rsync -av ./core-site.xml pcnode03:/opt/software/hadoop-3.2.2/etc/hadoop/
    

3.2 配置HDFS文件

  • 配置hdfs-site.xml文件

    cd $HADOOP_HOME/etc/hadoop
    vim hdfs-site.xml
    
  • 修改内容

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    
    <configuration>
    
    <!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>pcnode01:9870</value>
    </property>
    <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>pcnode03:9868</value>
    </property>
    
    </configuration>
    
    
  • 分发给其他服务器

    rsync -av ./hdfs-site.xml pcnode02:/opt/software/hadoop-3.2.2/etc/hadoop/
    rsync -av ./hdfs-site.xml pcnode03:/opt/software/hadoop-3.2.2/etc/hadoop/
    

3.3 配置YARN文件

  • 配置yarn-site.xml文件

    cd $HADOOP_HOME/etc/hadoop
    vim yarn-site.xml
    
  • 修改内容

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    
    <!-- 指定MR走 shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定 ResourceManager 的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>pcnode02</value>
    </property>
    <!-- 环境变量的继承-->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOEM,HADOOP_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    </configuration>
    
    
  • 分发给其他服务器

    rsync -av ./yarn-site.xml pcnode02:/opt/software/hadoop-3.2.2/etc/hadoop/
    rsync -av ./yarn-site.xml pcnode03:/opt/software/hadoop-3.2.2/etc/hadoop/
    

3.4 配置MapReduce配置文件

  • 配置mapred-site.xml文件

    cd $HADOOP_HOME/etc/hadoop
    vim mapred-site.xml
    
  • 修改内容

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    
    <configuration>
    
    <!-- 指定MapReduce 程序运行在Yarn上-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    </configuration>
    
    
  • 分发给其他服务器

    rsync -av ./mapred-site.xml pcnode02:/opt/software/hadoop-3.2.2/etc/hadoop/
    rsync -av ./mapred-site.xml pcnode03:/opt/software/hadoop-3.2.2/etc/hadoop/
    

4 群起集群

4.1 配置workers

  • 配置workers

    cd $HADOOP_HOME/etc/hadoop
    vim workers
    
  • 添加内容

    注意要删除首行的localhost

    pcnode01
    pcnode02
    pcnode03
    

    说明:workers文件中,添加的内容结尾不允许有空格,文件中不允许有空行

  • 分发给其他服务器

    rsync -av ./workers pcnode02:/opt/software/hadoop-3.2.2/etc/hadoop/
    rsync -av ./workers pcnode03:/opt/software/hadoop-3.2.2/etc/hadoop/
    

4.2 启动集群

  • 格式化namenode

    hdfs namenode -format
    

    说明:1、如果集群第一次启动,需要在pcnode01节点格式化NameNode

    ​ 2、格式化NameNode,会产生新的集群ID,导致NameNode和DataNode的集群ID不一致,集群找不到以往数据

    ​ 3、如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化

  • 启动HDFS

    ./sbin/start-dfs.sh
    

    报错参考:https://www.cnblogs.com/nuochengze/p/14883150.html

  • 启动yarn

    在布置了ResoureceManager的节点(pcnode02)启动yarn

    ./sbin/start-yarn.sh
    
  • web端查看HDFS的NameNode

    • 浏览器中输入:http://pcnode01:9870
  • web端查看YARN的ResourceManager

    • 浏览器中输入:http://pcnode02:8088

5 配置历史服务器

  • 作用

    查看程序的历史运行情况

  • 配置mapred-site.xml

    cd $HADOOP_HOME/etc/hadoop
    vim mapred-site.xml
    
  • 添加内容

    <!-- 历史服务器端地址-->
    <property>
    	<name>mapreduce.jobhistory.address</name>
    	<value>pcnode01:10020</value>
    </property>
    <!-- 历史服务器web端地址-->
    <property>
    	<name>mapreduce.jobhistory,webapp.address</name>
    	<value>pcnode01:19888</value>
    </property>
    
  • 分发给其他服务器

     rsync -av ./hadoop/* pcnode02:$HADOOP_HOME/etc/hadoop
     rsync -av ./hadoop/* pcnode03:$HADOOP_HOME/etc/hadoop
    
  • 停止hdfs/yarn

    $HADOOP_HOME/sbin/stop-dfs.sh  (pcnode01上)
    $HADOOP_HOME/sbin/stop-yarn.sh  (pcnode02上)
    
  • pcnode01启动历史服务器/dfs,在pcnode02启动yarn

    mapred --daemon start historyserver  (pcnode01上)
    $HADOOP_HOME/sbin/start-dfs.sh  (pcnode01上)
    $HADOOP_HOME/sbin/start-yarn.sh  (pcnode02上)
    
  • 在web端查看

    http://pcnode01:19888
    

6 配置日志的聚集

  • 作用

    应用运行完成后,将程序运行日志信息上传到HDFS系统上,方便开发调试

  • 配置yarn-site.xml

    cd $HADOOP_HOME/etc/hadoop
    vim yarn-site.xml
    
  • 添加内容

    <!-- 开启日志聚集功能-->
    <property>
    	<name>yarn.log-aggregation-enable</name>
    	<value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址-->
    <property>
    	<name>yarn.log.server.url</name>
    	<value>http://pcnode01:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为7天-->
    <property>
    	<name>yarn.log-aggregation.retain-seconds</name>
    	<value>604800</value>
    </property>
    
  • 分发给其他服务器

     rsync -av $HADOOP_HOME/etc/hadoop/* pcnode02:/$HADOOP_HOME/etc/hadoop 
     rsync -av $HADOOP_HOME/etc/hadoop/* pcnode03:/$HADOOP_HOME/etc/hadoop 
    
  • 停止hdfs/yarn/historyserver

    $HADOOP_HOME/sbin/stop-dfs.sh  (pcnode01上)
    $HADOOP_HOME/sbin/stop-yarn.sh  (pcnode01上)
    mapred --daemon stop historyserver  (pcnode01上)
    
  • pcnode01启动历史服务器/dfs,在pcnode02启动yarn

    mapred --daemon start historyserver  (pcnode01上)
    $HADOOP_HOME/sbin/start-dfs.sh  (pcnode01上)
    $HADOOP_HOME/sbin/start-yarn.sh  (pcnode02上)
    
  • 查看日志

    http://pcnode01:19888
    

7 集群启动/停止方式总结

  • 各个模块分开启动/停止

    start-dfs.sh/stop-dfs.sh  #HDFS的整体启停
    start-yarn.sh/stop-yarn.sh #yarn的整体启停
    
  • 单个服务组件逐一启动/停止

    • HDFS组件

      hdfs --daemon start/stop namenode/datanode/secondarynamenode
      
    • YARN组件

      yarn --daemon start/stop resourcemanager/nodemanager
      
  • 查看服务器Hadoop服务进程

    jps
    

8 常用端口号说明

端口名称 Hadoop2.x Hadoop3.x
NameNode内部通信端口 8020/9000 8020/9000/9820
NameNode HTTP UI 50070 9870
MapReduce查看任务执行端口 8088 8088
历史服务器通信端口 19888 19888
原文地址:https://www.cnblogs.com/nuochengze/p/14883874.html