1、解压

从software目录下解压至module目录。

  1. [root@slave4 software]# ls
  2. apache-hive-3.1.2-bin.tar.gz hadoop-3.2.1.tar.gz nacos-server-1.1.4.tar.gz spark-3.0.0-bin-hadoop3.2.tgz
  3. [root@slave4 software]# tar -xzvf hadoop-3.2.1.tar.gz -C ../module/

-C 参数表示解压到指定目录。

2、环境变量

所有节点增加hadoop-3.2.1环境变量。

  1. # set hadoop env
  2. export HADOOP_HOME=/opt/module/hadoop-3.2.1
  3. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  4. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

1、记得source一下生效。 2、使用hadoop version命令确认终端输出的版本是否为3.2.1

3、配置

3.1 修改配置文件

修改/opt/module/hadoop-3.2.1/etc/hadoop目录下的配置文件。以下所有配置文件中配置的目录,不需要手动创建,hadoop集群启动时会自动创建。
1、core-site.xml

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/opt/module/hadoop-3.2.1/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.default.name</name>
  9. <value>hdfs://主节点hostname:9000</value>
  10. </property>
  11. <!--集成hive-->
  12. <property>
  13. <name>hadoop.proxyuser.hive.groups</name>
  14. <value>*</value>
  15. </property>
  16. <property>
  17. <name>hadoop.proxyuser.hive.hosts</name>
  18. <value>*</value>
  19. </property>
  20. </configuration>

2、hdfs-site.xml

  1. <configuration>
  2. <!-- config for namenode -->
  3. <property>
  4. <name>dfs.name.dir</name>
  5. <value>/opt/module/hadoop-3.2.1/dfs/name</value>
  6. </property>
  7. <!-- config for datanode -->
  8. <property>
  9. <name>dfs.data.dir</name>
  10. <value>/opt/module/hadoop-3.2.1/dfs/data</value>
  11. </property>
  12. <!-- config secondary namenode -->
  13. <property>
  14. <name>dfs.namenode.secondary.http-address</name>
  15. <value>任选一从节点hostname:50090</value>
  16. </property>
  17. <!-- config replica数量 (节点个数 - 1) -->
  18. <property>
  19. <name>dfs.replication</name>
  20. <value>(节点个数 - 1)</value>
  21. </property>
  22. <property>
  23. <name>dfs.permissions</name>
  24. <value>false</value>
  25. <description>need not permissions</description>
  26. </property>
  27. </configuration>

3、hadoop-env.sh

  1. ...
  2. # The java implementation to use. By default, this environment
  3. # variable is REQUIRED on ALL platforms except OS X!
  4. export JAVA_HOME=填入JDK安装路径
  5. ...
  6. # Where pid files are stored. /tmp by default.
  7. export HADOOP_PID_DIR=/var/run
  8. ...

4、mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>主节点hostname:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>主节点hostname:19888</value>
  13. </property>
  14. </configuration>

5、yarn-site.xml

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <!--config address for resourceManager-->
  4. <property>
  5. <name>yarn.resourcemanager.hostname</name>
  6. <value>主节点hostname</value>
  7. </property>
  8. <!--config the method that reducer get data -->
  9. <property>
  10. <name>yarn.nodemanager.aux-services</name>
  11. <value>mapreduce_shuffle</value>
  12. </property>
  13. <property>
  14. <name>yarn.nodemanager.local-dirs</name>
  15. <value>/opt/module/hadoop-3.2.1/yarn</value>
  16. </property>
  17. </configuration>

6、workers

  1. master
  2. slave1
  3. slave2
  4. ...

3.2 修改启动脚本

修改/opt/module/hadoop-3.2.1/sbin目录下启动脚本。
1、start-dfs.sh (在脚本头部增加以下2-4行内容。)

  1. #!/usr/bin/env bash
  2. HDFS_DATANODE_USER=root
  3. HDFS_NAMENODE_USER=root
  4. HDFS_SECONDARYNAMENODE_USER=root
  5. ...

2、stop-dfs.sh (在脚本头部增加以下2-4行内容。)

  1. #!/usr/bin/env bash
  2. HDFS_DATANODE_USER=root
  3. HDFS_NAMENODE_USER=root
  4. HDFS_SECONDARYNAMENODE_USER=root
  5. ...

3、start-yarn.sh (在脚本头部增加以下2-3行内容。)

  1. #!/usr/bin/env bash
  2. YARN_NODEMANAGER_USER=root
  3. YARN_RESOURCEMANAGER_USER=root
  4. ...

4、stop-yarn.sh (在脚本头部增加以下2-3行内容。)

  1. #!/usr/bin/env bash
  2. YARN_NODEMANAGER_USER=root
  3. YARN_RESOURCEMANAGER_USER=root
  4. ...

4、分发

快捷分发。
1、检查其他节点是否有/opt/module目录。
2、进入/opt/module目录,执行scp -r hadoop-3.2.1 节点hostname:$PWD

5、启动

  1. 格式化namenode

    1. 进入hadoop-3.2.1/bin目录,执行hdfs namenode -format命令,格式化namenode。
    2. 检查。/opt/module/hadoop-3.2.1/dfs/name是否有current文件夹。

      注意:namenode只需要在部署时格式化一次。之后重启HDFS不需要格式化namenode,直接从第2步开始

  2. 启动HDFS和Yarn

    1. 进入hadoop-3.2.1/sbin目录。
    2. 执行./start-dfs.sh启动HDFS。
    3. 执行./start-yarn.sh启动Yarn。
  3. 检查
    1. 检查HDFS
      1. 登录webUI:主节点ip:9870 查看DataNode是否都在线。
      2. 如下图

image.png

  1. 检查Yarn
    1. 登录webUI:主节点ip:8088 查看是否能显示集群资源信息。
    2. 如下图

image.png

6、附录

6.1 端口变化

相比2.7.5,3.2.1版本在webUI和内部通信端口上都发生了变化。可以在集群内部使用telnet测试端口是否已经通畅,如果不通,再选择去开通需要的端口。

  • HDFS webUI:9870
  • Yarn webUI:8088
  • NameNode:9871 9870 9820
  • SecondaryNameNode:9868 9869 50090
  • DataNode:9864 9865 9866 9867
  • ResourceManage:8030 8031 8032 8033
  • MapReduce:10020 19888

    6.2 如果之前安装过2.7.5版本

    如果之前机器装过hadoop2.7.5,那么需要删除之前的环境变量,配置成3.2.1版本的环境变量。之后一定要使用hadoop version命令检查下终端输出的版本号是否为3.2.1。