0


Hadoop生态圈框架部署(四)- Hadoop完全分布式部署

文章目录


前言

  1. 介绍在虚拟机hadoop1、hadoop2和hadoop3部署完全分布式Hadoop
  2. 部署规划: hadoop1hadoop2hadoop3HDFSNameNodeSecondaryNameNodeDataNodeDataNodeYARNResourceManagerNodeManagerNodeManager
  3. 配置hadoop配置文件
  4. 配置hadoop环境变量
  5. 访问hadoop对应Web UI
  6. 提供shell脚本自动化安装hadoop完全分布式

一、Hadoop完全分布式部署(手动部署)

1. 下载hadoop

点击下载hadoop3.3.0安装包:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

2. 上传安装包

通过拖移的方式将下载的hadoop安装包hadoop-3.3.0.tar.gz上传至虚拟机hadoop1的/export/software目录。

在这里插入图片描述

2. 解压hadoop安装包

在虚拟机Hadoop1上传完成后将hadoop安装包通过解压方式安装至/export/servers目录。

  1. tar -zxvf /export/software/hadoop-3.3.0.tar.gz -C /export/servers/

解压完成如下图所示。

在这里插入图片描述

3. 配置hadoop配置文件

3.1 虚拟机hadoop1修改hadoop配置文件

3.1.1 修改 hadoop-env.sh 配置文件

在虚拟机Hadoop1修改hadoop运行时环境变量配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh

,使用echo命令向hadoop-env.sh文件追加如下内容。

  1. echo>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  2. echo'export JAVA_HOME=/export/servers/jdk1.8.0_421'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  3. echo'export HDFS_NAMENODE_USER=root'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  4. echo'export HDFS_DATANODE_USER=root'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  5. echo'export HDFS_SECONDARYNAMENODE_USER=root'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  6. echo'export YARN_RESOURCEMANAGER_USER=root'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
  7. echo'export YARN_NODEMANAGER_USER=root'>> /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh

在这里插入图片描述

查看文件内容是否添加成功。

  1. cat /export/servers/hadoop-3.3.0/etc/hadoop/hadoop-env.sh

在这里插入图片描述

3.3.2 修改 core-site.xml 配置文件

在虚拟机Hadoop1修改hadoop核心配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/core-site.xml

,使用echo命令把配置内容重定向并写入到 /export/servers/hadoop-3.3.0/etc/hadoop/core-site.xml 文件。

  1. echo\'<?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- 指定Hadoop集群的默认文件系统名称 -->
  5. <property>
  6. <name>fs.defaultFS</name>
  7. <value>hdfs://hadoop1:9000</value>
  8. </property>
  9. <!-- 设置Hadoop临时目录的位置,用于存储各种临时文件 -->
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>/export/data/hadoop-3.3.0</value>
  13. </property>
  14. <!-- 当通过Web界面访问Hadoop集群时,默认的用户名 -->
  15. <property>
  16. <name>hadoop.http.staticuser.user</name>
  17. <value>root</value>
  18. </property>
  19. <!-- 允许哪些主机上的用户可以作为代理用户执行操作 -->
  20. <property>
  21. <name>hadoop.proxyuser.root.hosts</name>
  22. <value>*</value> <!-- * 表示任何主机 -->
  23. </property>
  24. <!-- 定义哪个组的用户可以作为代理用户执行操作 -->
  25. <property>
  26. <name>hadoop.proxyuser.root.groups</name>
  27. <value>*</value> <!-- * 表示所有组的用户 -->
  28. </property>
  29. <!-- 设置回收站功能的保留时间间隔,单位为分钟 -->
  30. <property>
  31. <name>fs.trash.interval</name>
  32. <value>1440</value> <!-- 1440分钟等于1 -->
  33. </property>
  34. </configuration>'\> /export/servers/hadoop-3.3.0/etc/hadoop/core-site.xml

在这里插入图片描述

3.3.3 修改 hdfs-site.xml 配置文件

在虚拟机Hadoop1修改hdfs的配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/hdfs-site.xml

,使用cat命令把配置内容重定向并写入到 /export/servers/hadoop-3.3.0/etc/hadoop/hdfs-site.xml 文件。

  1. cat>/export/servers/hadoop-3.3.0/etc/hadoop/hdfs-site.xml <<EOF
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  4. <configuration>
  5. <property>
  6. <name>dfs.replication</name>
  7. <value>2</value>
  8. </property>
  9. <property>
  10. <name>dfs.namenode.secondary.http-address</name>
  11. <value>hadoop2:9868</value>
  12. </property>
  13. </configuration>
  14. EOF

在这里插入图片描述

3.3.4 修改 mapred-site.xml 配置文件

在虚拟机Hadoop1修改mapreduce的配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/mapred-site.xml

,使用cat命令把配置内容重定向并写入到 /export/servers/hadoop-3.3.0/etc/hadoop/mapred-site.xml 文件。

  1. cat>/export/servers/hadoop-3.3.0/etc/hadoop/mapred-site.xml <<EOF
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  4. <configuration>
  5. <property>
  6. <name>mapreduce.framework.name</name>
  7. <value>yarn</value>
  8. </property>
  9. <property>
  10. <name>mapreduce.jobhistory.address</name>
  11. <value>hadoop1:10020</value>
  12. </property>
  13. <property>
  14. <name>mapreduce.jobhistory.Webapp.address</name>
  15. <value>hadoop1:19888</value>
  16. </property>
  17. <property>
  18. <name>yarn.app.mapreduce.am.env</name>
  19. <value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.3.0</value>
  20. </property>
  21. <property>
  22. <name>mapreduce.map.env</name>
  23. <value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.3.0</value>
  24. </property>
  25. <property>
  26. <name>mapreduce.reduce.env</name>
  27. <value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.3.0</value>
  28. </property>
  29. </configuration>
  30. EOF

在这里插入图片描述

3.3.5 修改 yarn-site.xml 配置文件

在虚拟机Hadoop1修改yarn的配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/yarn-site.xml

,使用cat命令把配置内容重定向并写入到 /export/servers/hadoop-3.3.0/etc/hadoop/yarn-site.xml 文件。

  1. cat>/export/servers/hadoop-3.3.0/etc/hadoop/yarn-site.xml <<EOF
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  4. <configuration>
  5. <property>
  6. <name>yarn.resourcemanager.hostname</name>
  7. <value>hadoop1</value>
  8. </property>
  9. <property>
  10. <name>yarn.nodemanager.aux-services</name>
  11. <value>mapreduce_shuffle</value>
  12. </property>
  13. <property>
  14. <name>yarn.nodemanager.pmem-check-enabled</name>
  15. <value>false</value>
  16. </property>
  17. <property>
  18. <name>yarn.nodemanager.vmem-check-enabled</name>
  19. <value>false</value>
  20. </property>
  21. <property>
  22. <name>yarn.log-aggregation-enable</name>
  23. <value>true</value>
  24. </property>
  25. <property>
  26. <name>yarn.log.server.url</name>
  27. <value>http://hadoop1:19888/jobhistory/logs</value>
  28. </property>
  29. <property>
  30. <name>yarn.log-aggregation.retain-seconds</name>
  31. <value>604800</value>
  32. </property>
  33. </configuration>
  34. EOF

在这里插入图片描述

3.3.6 修改 workers 配置文件

在虚拟机Hadoop1修改hadoop的从节点服务器配置文件

  1. /export/servers/hadoop-3.3.0/etc/hadoop/workers

,使用cat命令把配置内容重定向并写入到 /export/servers/hadoop-3.3.0/etc/hadoop/workers 文件。

  1. cat>/export/servers/hadoop-3.3.0/etc/hadoop/workers <<EOF
  2. hadoop2
  3. hadoop3
  4. EOF

在这里插入图片描述

3.2 虚拟机hadoop2安装并配置hadoop

在虚拟机hadoop1使用scp命令把虚拟机hadoop1的hadoop的安装目录复制到虚拟机hadoop2的相同目录下,就相当于在hadoop2安装并配置了hadoop。

  1. scp -r /export/servers/hadoop-3.3.0/ hadoop2:/export/servers/

在这里插入图片描述

3.3 虚拟机hadoop3安装并配置hadoop

在虚拟机hadoop1使用scp命令把虚拟机hadoop1的hadoop的安装目录复制到虚拟机hadoop3的相同目录下,就相当于在hadoop3安装并配置了hadoop。

  1. scp -r /export/servers/hadoop-3.3.0/ hadoop3:/export/servers/

在这里插入图片描述

4. 配置hadoop环境变量

4.1 配置虚拟机hadoop1的hadoop环境变量

在虚拟机hadoop1使用

  1. echo

命令向环境变量配置文件

  1. /etc/profile

追加环境变量内容。

  1. echo>> /etc/profile
  2. echo'export HADOOP_HOME=/export/servers/hadoop-3.3.0'>> /etc/profile
  3. echo'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用hadoop的环境变量生效。

  1. source /etc/profile

在这里插入图片描述

4.2 配置虚拟机hadoop2的hadoop环境变量

在虚拟机hadoop2使用

  1. echo

命令向环境变量配置文件

  1. /etc/profile

追加环境变量内容。

  1. echo>> /etc/profile
  2. echo'export HADOOP_HOME=/export/servers/hadoop-3.3.0'>> /etc/profile
  3. echo'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用hadoop的环境变量生效。

  1. source /etc/profile

在这里插入图片描述

4.3 配置虚拟机hadoop3的hadoop环境变量

在虚拟机hadoop3使用

  1. echo

命令向环境变量配置文件

  1. /etc/profile

追加环境变量内容。

  1. echo>> /etc/profile
  2. echo'export HADOOP_HOME=/export/servers/hadoop-3.3.0'>> /etc/profile
  3. echo'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用hadoop的环境变量生效。

  1. source /etc/profile

在这里插入图片描述

5. 格式化HDFS(Hadoop分布式文件系统)

在虚拟机hadoop1执行如下命令格式化Hadoop分布式文件系统HDFS。

  1. hdfs namenode -format

在这里插入图片描述

注意:如果在格式化过程中遇到如下提示,输入

  1. n

并按回车键,然后依次在虚拟机hadoop1、hadoop2和hadoop3执行

  1. rm -rf /export/data/hadoop-3.3.0

删除之前生成的数据保存目录,再在虚拟机hadoop1执行

  1. hdfs namenode -format

重新格式化文件系统。
在这里插入图片描述

格式化成功如下图所示,会提示我们存储目录 /export/data/hadoop-3.3.0/dfs/name 已经成功格式化
在这里插入图片描述

6. hadoop集群启动和停止

6.1 启动 hadoop 集群

方法一:在虚拟机Hadoop1执行如下命令同时启动 hdfs 和 yarn。

  1. start-all.sh

注意:命令的全路径启动为

  1. /export/servers/hadoop-3.3.0/sbin/start-all.sh

,之所以可以使用

  1. start-all.sh

直接启动是因为我们设置了环境变量。

在这里插入图片描述

方法二:在虚拟机Hadoop1单独启动 hdfs 和单独启动 yarn。
单独启动 hdfs

  1. start-dfs.sh

单独启动 yarn

  1. start-yarn.sh

hadoop集群启动之后使用如下命名分别在虚拟机hadoop1、虚拟机hadoop2和虚拟机hadoop3执行如下命令查看对应进程是否正常。

  1. jps -l

正常如下图所示。
在这里插入图片描述

访问 HDFS(NameNode)的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.160:9870

进行访问,如下图。
在这里插入图片描述

检查DataNode是否正常,正常如下图所示。
在这里插入图片描述

访问 HDFS(Secondary NameNode)的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.161:9868

进行访问,如下图。
在这里插入图片描述

访问 YARN 的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.160:8088

进行访问,如下图。
在这里插入图片描述

6.2 停止 hadoop 集群

方法一:如果需要停止 hadoop 集群运行,在虚拟机hadoop1执行如下命令同时停止 hdfs 和 yarn。

  1. stop-all.sh

在这里插入图片描述

方法二:如果需要停止 hadoop 集群运行,在虚拟机hadoop1单独启动 hdfs 和单独启动 yarn。
单独启动 hdfs

  1. stop-dfs.sh

单独启动 yarn

  1. stop-yarn.sh

二、使用shell脚本自动部署Hadoop完全分布式(选看)

1. 下载hadoop

点击下载hadoop3.3.0安装包:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

2. 上传安装包

通过拖移的方式将下载的hadoop安装包hadoop-3.3.0.tar.gz上传至虚拟机hadoop1的/export/software目录。

在这里插入图片描述

3. 使用shell脚本自动部署Hadoop完全分布式

3.1 创建 hadoop1_hadoop_install_config.sh 脚本文件并添加脚本内容

虚拟机hadoop1上创建

  1. /export/shell/hadoop1_hadoop_install_config.sh

脚本文件

  1. touch /export/shell/hadoop1_hadoop_install_config.sh

添加如下内容:

  1. #!/bin/bash# 定义常量HADOOP_DIR="/export/servers"HADOOP_VER="3.3.0"HADOOP_TAR="hadoop-${HADOOP_VER}.tar.gz"HADOOP_SOFTWARE_DIR="/export/software"JAVA_PATH="/export/servers/jdk1.8.0_421"HADOOP_TMP_DIR="/export/data/hadoop-${HADOOP_VER}"DATA_DIR="/export/data"SOFTWARE_DIR="/export/software"SERVERS_DIR="/export/servers"cat> /etc/profile <<EOF
  2. # /etc/profile
  3. # System wide environment and startup programs, for login setup
  4. # Functions and aliases go in /etc/bashrc
  5. # It's NOT a good idea to change this file unless you know what you
  6. # are doing. It's much better to create a custom.sh shell script in
  7. # /etc/profile.d/ to make custom changes to your environment, as this
  8. # will prevent the need for merging in future updates.
  9. pathmunge () {
  10. case ":\${PATH}:" in
  11. *:"\$1":*)
  12. ;;
  13. *)
  14. if [ "\$2" = "after" ] ; then
  15. PATH=\$PATH:\$1
  16. else
  17. PATH=\$1:\$PATH
  18. fi
  19. esac
  20. }
  21. if [ -x /usr/bin/id ]; then
  22. if [ -z "\$EUID" ]; then
  23. # ksh workaround
  24. EUID=`/usr/bin/id -u`
  25. UID=`/usr/bin/id -ru`
  26. fi
  27. USER="`/usr/bin/id -un`"
  28. LOGNAME=\$USER
  29. MAIL="/var/spool/mail/\$USER"
  30. fi
  31. # Path manipulation
  32. if [ "\$EUID" = "0" ]; then
  33. pathmunge /usr/sbin
  34. pathmunge /usr/local/sbin
  35. else
  36. pathmunge /usr/local/sbin after
  37. pathmunge /usr/sbin after
  38. fi
  39. HOSTNAME=`/usr/bin/hostname 2>/dev/null`
  40. HISTSIZE=1000
  41. if [ "\$HISTCONTROL" = "ignorespace" ] ; then
  42. export HISTCONTROL=ignoreboth
  43. else
  44. export HISTCONTROL=ignoredups
  45. fi
  46. export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
  47. # By default, we want umask to get set. This sets it for login shell
  48. # Current threshold for system reserved uid/gids is 200
  49. # You could check uidgid reservation validity in
  50. # /usr/share/doc/setup-*/uidgid file
  51. if [ \$UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
  52. umask 002
  53. else
  54. umask 022
  55. fi
  56. for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
  57. if [ -r "\$i" ]; then
  58. if [ "\${-#*i}" != "\$-" ]; then
  59. . "\$i"
  60. else
  61. . "\$i" >/dev/null
  62. fi
  63. fi
  64. done
  65. unset i
  66. unset -f pathmunge
  67. export JAVA_HOME=/export/servers/jdk1.8.0_421
  68. export PATH=\$PATH:\$JAVA_HOME/bin
  69. export HADOOP_HOME=/export/servers/hadoop-3.3.0
  70. export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
  71. EOFecho"HADOOP_HOME 设置成功"# 分发到hadoop2scp /etc/profile root@hadoop2:/etc/
  72. if[$? -eq 0];thenecho"分发 /etc/profile 到 hadoop2 的 /etc 目录成功"elseecho"分发 /etc/profile 到 hadoop2 的 /etc 目录失败,请检查"exit1fi# 分发到hadoop3scp /etc/profile root@hadoop3:/etc/
  73. if[$? -eq 0];thenecho"分发 /etc/profile 到 hadoop3 的 /etc 目录成功"elseecho"分发 /etc/profile 到 hadoop3 的 /etc 目录失败,请检查"exit1fi# 如果临时数据目录存在则删除if[ -d "${HADOOP_TMP_DIR}"];thenecho"删除自动生成的临时数据目录 ${HADOOP_TMP_DIR}..."rm -rf ${HADOOP_TMP_DIR}fissh root@hadoop2 \"
  74. if [ -d \"${HADOOP_TMP_DIR}\" ]; then
  75. echo \"删除 hadoop2 自动生成的临时数据目录 ${HADOOP_TMP_DIR}...\"
  76. rm -rf ${HADOOP_TMP_DIR}
  77. fi
  78. exit
  79. "ssh root@hadoop3 \"
  80. if [ -d \"${HADOOP_TMP_DIR}\" ]; then
  81. echo \"删除 hadoop3 自动生成的临时数据目录 ${HADOOP_TMP_DIR}...\"
  82. rm -rf ${HADOOP_TMP_DIR}
  83. fi
  84. exit
  85. "# 检查hadoop是否已解压if[ -d "$HADOOP_DIR/hadoop-$HADOOP_VER"];thenecho"hadoop安装程序已存在,正在删除原安装程序目录..."rm -rf "$HADOOP_DIR/hadoop-$HADOOP_VER"fi# 检查hadoop安装包是否存在if[ -f $SOFTWARE_DIR/$HADOOP_TAR];thenecho"hadoop安装包存在,正在解压安装包..."# 解压Hadoop安装包tar -zxvf ${HADOOP_SOFTWARE_DIR}/${HADOOP_TAR} -C ${HADOOP_DIR}echo"解压 ${HADOOP_SOFTWARE_DIR}/${HADOOP_TAR} 到 ${HADOOP_DIR} 目录成功"elseecho"hadoop安装包不存在,请先上传安装包到 ${HADOOP_SOFTWARE_DIR} 目录"exit1fi# 配置hadoop-env.shecho>>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/hadoop-env.sh
  86. echo\"
  87. export JAVA_HOME=/export/servers/jdk1.8.0_421
  88. export HDFS_NAMENODE_USER=root
  89. export HDFS_DATANODE_USER=root
  90. export HDFS_SECONDARYNAMENODE_USER=root
  91. export YARN_RESOURCEMANAGER_USER=root
  92. export YARN_NODEMANAGER_USER=root
  93. "\>>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/hadoop-env.sh
  94. echo"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/hadoop-env.sh 配置文件修改成功"# 配置core-site.xmlcat>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/core-site.xml <<EOF
  95. <?xml version="1.0"?>
  96. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  97. <configuration>
  98. <property>
  99. <name>fs.defaultFS</name>
  100. <value>hdfs://hadoop1:9000</value>
  101. </property>
  102. <property>
  103. <name>hadoop.tmp.dir</name>
  104. <value>${HADOOP_TMP_DIR}</value>
  105. </property>
  106. <property>
  107. <name>hadoop.http.staticuser.user</name>
  108. <value>root</value>
  109. </property>
  110. <property>
  111. <name>hadoop.proxyuser.root.hosts</name>
  112. <value>*</value>
  113. </property>
  114. <property>
  115. <name>hadoop.proxyuser.root.groups</name>
  116. <value>*</value>
  117. </property>
  118. <property>
  119. <name>fs.trash.interval</name>
  120. <value>1440</value>
  121. </property>
  122. </configuration>
  123. EOFecho"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/core-site.xml 配置文件修改成功"# 配置hdfs-site.xmlcat>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/hdfs-site.xml <<EOF
  124. <?xml version="1.0"?>
  125. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  126. <configuration>
  127. <property>
  128. <name>dfs.replication</name>
  129. <value>2</value>
  130. </property>
  131. <property>
  132. <name>dfs.namenode.secondary.http-address</name>
  133. <value>hadoop2:9868</value>
  134. </property>
  135. </configuration>
  136. EOFecho"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/hdfs-site.xml 配置文件修改成功"# 配置mapred-site.xmlcat>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/mapred-site.xml <<EOF
  137. <?xml version="1.0"?>
  138. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  139. <configuration>
  140. <property>
  141. <name>mapreduce.framework.name</name>
  142. <value>yarn</value>
  143. </property>
  144. <property>
  145. <name>mapreduce.jobhistory.address</name>
  146. <value>hadoop1:10020</value>
  147. </property>
  148. <property>
  149. <name>mapreduce.jobhistory.webapp.address</name>
  150. <value>hadoop1:19888</value>
  151. </property>
  152. <property>
  153. <name>yarn.app.mapreduce.am.env</name>
  154. <value>HADOOP_MAPRED_HOME=${HADOOP_DIR}/hadoop-${HADOOP_VER}</value>
  155. </property>
  156. <property>
  157. <name>mapreduce.map.env</name>
  158. <value>HADOOP_MAPRED_HOME=${HADOOP_DIR}/hadoop-${HADOOP_VER}</value>
  159. </property>
  160. <property>
  161. <name>mapreduce.reduce.env</name>
  162. <value>HADOOP_MAPRED_HOME=${HADOOP_DIR}/hadoop-${HADOOP_VER}</value>
  163. </property>
  164. </configuration>
  165. EOFecho"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/mapred-site.xml 配置文件修改成功"# 配置yarn-site.xmlcat>${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/yarn-site.xml <<EOF
  166. <?xml version="1.0"?>
  167. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  168. <configuration>
  169. <property>
  170. <name>yarn.resourcemanager.hostname</name>
  171. <value>hadoop1</value>
  172. </property>
  173. <property>
  174. <name>yarn.nodemanager.aux-services</name>
  175. <value>mapreduce_shuffle</value>
  176. </property>
  177. <property>
  178. <name>yarn.nodemanager.pmem-check-enabled</name>
  179. <value>false</value>
  180. </property>
  181. <property>
  182. <name>yarn.nodemanager.vmem-check-enabled</name>
  183. <value>false</value>
  184. </property>
  185. <property>
  186. <name>yarn.log-aggregation-enable</name>
  187. <value>true</value>
  188. </property>
  189. <property>
  190. <name>yarn.log.server.url</name>
  191. <value>http://hadoop1:19888/jobhistory/logs</value>
  192. </property>
  193. <property>
  194. <name>yarn.log-aggregation.retain-seconds</name>
  195. <value>604800</value>
  196. </property>
  197. </configuration>
  198. EOFecho"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/yarn-site.xml 配置文件修改成功"# 设置workers文件echo -e "hadoop2\nhadoop3">${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/workers
  199. echo"${HADOOP_DIR}/hadoop-${HADOOP_VER}/etc/hadoop/workers 配置文件修改成功"# 分发到hadoop2scp -r ${HADOOP_DIR}/hadoop-${HADOOP_VER} root@hadoop2:${HADOOP_DIR}/
  200. if[$? -eq 0];thenecho"分发 ${HADOOP_DIR}/hadoop-${HADOOP_VER} 到 hadoop2 的 ${HADOOP_DIR} 目录成功"elseecho"分发 ${HADOOP_DIR}/hadoop-${HADOOP_VER} 到 hadoop2 的 ${HADOOP_DIR} 目录失败,请检查"exit1fi# 分发到hadoop3scp -r ${HADOOP_DIR}/hadoop-${HADOOP_VER} root@hadoop3:${HADOOP_DIR}/
  201. if[$? -eq 0];thenecho"分发 ${HADOOP_DIR}/hadoop-${HADOOP_VER} 到 hadoop3 的 ${HADOOP_DIR} 目录成功"elseecho"分发 ${HADOOP_DIR}/hadoop-${HADOOP_VER} 到 hadoop3 的 ${HADOOP_DIR} 目录失败,请检查"exit1fi# 设置临时环境变量exportHADOOP_HOME=${HADOOP_DIR}/hadoop-${HADOOP_VER}exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  202. echo"设置hadoop临时环境变量为: \$HADOOP_HOME = ${HADOOP_HOME}"# 格式化HDFSecho"正在格式化HDFS..."
  203. hdfs namenode -format
  204. if[$? -eq 0];thenecho"格式化HDFS成功"elseecho"格式化HDFS失败,请检查异常并解决后重新执行此脚本"exit1fiecho -e "\n-----hadoop完全分布式安装配置完成-----\n"echo -e "1. 请手动在hadoop1、hadoop2和hadoop3执行命令 source /etc/profile 加载环境变量\n"echo"3. 启动hadoop命令:start-all.sh, 停止hadoop命令:stop-all.sh"exit0

在这里插入图片描述

3.2 添加可执行权限

虚拟机hadoop1上给脚本文件

  1. /export/shell/hadoop1_hadoop_install_config.sh

添加可执行权限。

  1. chmod +x /export/shell/hadoop1_hadoop_install_config.sh

在这里插入图片描述

3.3 执行脚本

虚拟机hadoop1上执行脚本文件自动化安装配置hadoop完全分布式。

  1. /export/shell/hadoop1_hadoop_install_config.sh

在这里插入图片描述
在这里插入图片描述

4. 加载环境变量

根据使用shell脚本自动安装完成后的提示依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令。

  1. source /etc/profile

在这里插入图片描述

5. hadoop集群启动和停止

5.1 启动 hadoop 集群

方法一:在虚拟机Hadoop1执行如下命令同时启动 hdfs 和 yarn。

  1. start-all.sh

注意:命令的全路径启动为

  1. /export/servers/hadoop-3.3.0/sbin/start-all.sh

,之所以可以使用

  1. start-all.sh

直接启动是因为我们设置了环境变量。

在这里插入图片描述

方法二:在虚拟机Hadoop1单独启动 hdfs 和单独启动 yarn。
单独启动 hdfs

  1. start-dfs.sh

单独启动 yarn

  1. start-yarn.sh

hadoop集群启动之后使用如下命名分别在虚拟机hadoop1、虚拟机hadoop2和虚拟机hadoop3执行如下命令查看对应进程是否正常。

  1. jps -l

正常如下图所示。
在这里插入图片描述

访问 HDFS(NameNode)的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.160:9870

进行访问,如下图。
在这里插入图片描述

检查DataNode是否正常,正常如下图所示。
在这里插入图片描述

访问 HDFS(Secondary NameNode)的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.161:9868

进行访问,如下图。
在这里插入图片描述

访问 YARN 的 Web UI 页面
在启动hadoop集群后,在浏览器输入

  1. http://192.168.121.160:8088

进行访问,如下图。
在这里插入图片描述

5.2 停止 hadoop 集群

方法一:如果需要停止 hadoop 集群运行,在虚拟机hadoop1执行如下命令同时停止 hdfs 和 yarn。

  1. stop-all.sh

在这里插入图片描述

方法二:如果需要停止 hadoop 集群运行,在虚拟机hadoop1单独启动 hdfs 和单独启动 yarn。
单独启动 hdfs

  1. stop-dfs.sh

单独启动 yarn

  1. stop-yarn.sh
标签: 分布式 hadoop linux

本文转载自: https://blog.csdn.net/zcs2312852665/article/details/143440757
版权归原作者 BigDataMagician 所有, 如有侵权,请联系我们删除。

“Hadoop生态圈框架部署(四)- Hadoop完全分布式部署”的评论:

还没有评论