当前位置:   article > 正文

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_hadoop集群配置

hadoop集群配置

写在最前,在配置Hadoop之前,要确定已经准备好了Hadoop的准备环境,并且已经在机器上安装完了Hadoop,以及编写了一些必要的集群脚本,具体操作详情见这两篇文章
Hadoop安装及集群脚本编写
Hadoop集群准备环境搭建

一、Hadoop集群配置

1)集群部署规划

注意:

①NameNode和SecondaryNameNode不要安装在同一台服务器上。NN和2NN的关系就好像是NN的补充是2NN,如果安装在同一个机器上,机器一挂,NN和2NN全挂,完全不需要2NN对NN的补充

②ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上

所以安装规划如下

hadoop102hadoop103hadoop104
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeMangerResourceManager
NodeManger
NodeManager

2)配置文件

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

自定义文件主要有

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml,四个文件都放在hadoop目录下的etc/hadoop路径,可以根据实际需要进行配置

自定义文件说明

文件说明
core-site.xml核心配置文件
hdfs-site.xmlhdfs配置文件
yarn-site.xmlyarn配置问及那
mapred-site.xmlmr配置文件

3)配置集群

①核心配置文件

配置core-site.xml

vim hadoop-3.1.3/etc/hadoop/core-site.xml
  • 1
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
    <!-- 指定 NameNode 的地址 --> 
    <property> 
        <name>fs.defaultFS</name> 
        <value>hdfs://hadoop102:8020</value> 
    </property> 
 
    <!-- 指定 hadoop 数据的存储目录 --> 
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>/opt/module/hadoop-3.1.3/data</value> 
    </property> 
 
    <!-- 配置 HDFS 网页登录使用的静态用户为 lnnu --> 
    <property> 
        <name>hadoop.http.staticuser.user</name> 
        <value>lnnu</value> 
    </property> 
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述

注意:8020端口是客户端访问集群端口

②HDFS配置文件

配置hdfs-site.xml

vim hadoop-3.1.3/etc/hadoop/hdfs-site.xml
  • 1
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
  <!-- nn web 端访问地址--> 
  <property> 
        <name>dfs.namenode.http-address</name> 
        <value>hadoop102:9870</value> 
    </property> 
  <!-- 2nn web 端访问地址--> 
    <property> 
        <name>dfs.namenode.secondary.http-address</name> 
        <value>hadoop104:9868</value> 
    </property> 
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

注意:9870是访问hdfs端口

③yarn配置文件

配置yarn-site.xml

vim hadoop-3.1.3/etc/hadoop/yarn-site.xml
  • 1
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
    <!-- 指定 MR 走 shuffle --> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
 
    <!-- 指定 ResourceManager 的地址--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>hadoop103</value> 
    </property> 
 
    <!-- 环境变量的继承 --> 
    <property> 
        <name>yarn.nodemanager.env-whitelist</name> 
        
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> 
    </property> 
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述

④MapReduce配置文件

配置mapred-site.xml

vim hadoop-3.1.3/etc/hadoop/mapred-site.xml
  • 1
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
  <!-- 指定 MapReduce 程序运行在 Yarn 上 --> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> 
    </property> 
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

4)配置好之后将文件分发到其他所有节点

xsync /opt/module/hadoop-3.1.3/etc/hadoop/
  • 1

5)查看是否分发成功

在这里插入图片描述

二、启动集群

1)配置workers

配置workers文件,在/opt/module/hadoop-3.1.3/etc/hadoop/下

vim  /opt/module/hadoop-3.1.3/etc/hadoop/workers
  • 1
hadoop102 
hadoop103 
hadoop104 
  • 1
  • 2
  • 3

注意:文件中不允许有空格,也不允许有空行。因为集群无法识别你的空格和空行是否为一台机器
在这里插入图片描述

分发到其他节点

xsync /opt/module/hadoop-3.1.3/etc/hadoop/workers
  • 1

2)启动集群

① 如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode

注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。

hdfs namenode -format
  • 1

在这里插入图片描述

②启动HDFS

sbin/start-dfs.sh
  • 1

在这里插入图片描述

③启动YARN,因为YARN配置在了hadoop103上,所以到103上启动,ResourceManager

sbin/start-yarn.sh
  • 1

在这里插入图片描述

④web端查看HDFS的NameNode

浏览器:http://hadoop102:9870
在这里插入图片描述

⑤web端查看YARN的ResourceManager

浏览器:http://hadoop103:8088
在这里插入图片描述

3)集群小测试

集群启动之后,要测试是否能够正常运行,还是使用之前的官方小案例WordCount

①上传文件到集群

hadoop fs -mkdir /input
hadoop fs -put fileName /wc
  • 1
  • 2

在这里插入图片描述

上传大文件

hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz  / 
  • 1

在这里插入图片描述

查看是否成功
在这里插入图片描述

4)配置历史服务器

①历史服务器可以在mapred-site.xml里配置

vim mapred-site.xml
  • 1

增加内容

<!-- 历史服务器端地址 --> 
<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>hadoop102:10020</value> 
</property> 
 
<!-- 历史服务器 web 端地址 --> 
<property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>hadoop102:19888</value> 
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

②分发历史服务器

xsync /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
  • 1

在这里插入图片描述

③启动历史服务器

mapred --daemon start historyserver
  • 1

在这里插入图片描述

④查看是否启动成功

jps
  • 1

在这里插入图片描述

⑤web端查看JobHistory

http://hadoop102:19888/jobhistory
在这里插入图片描述

5)配置日志的聚集

就是把应用的日志信息上传到HDFS系统上。

日志聚集配置之后,可以方便的查看到程序运行详情,方便开发调试。

开启日志聚集功能,需要重新启动NodeManager、ResourceManager和HistoryServer。

开启步骤:

①配置yarn-site.xml

vim yarn-site.xml
  • 1

增加配置

<!-- 开启日志聚集功能 --> 
<property> 
    <name>yarn.log-aggregation-enable</name> 
    <value>true</value> 
</property> 
<!-- 设置日志聚集服务器地址 --> 
<property>   
    <name>yarn.log.server.url</name>   
    <value>http://hadoop102: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

在这里插入图片描述

②分发配置

xsync /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
  • 1

在这里插入图片描述

③关闭NameManager、ResourceManager、HistoryServer

sbin/stop-dfs.sh
sbin/stop-yarn.sh
mapred  --daemon stop historyserver
  • 1
  • 2
  • 3

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

④确认已经关闭

jps
  • 1

在这里插入图片描述

⑤启动NameManager、ResourceManager、HistoryServer

sbin/start-dfs.sh
mapred --daemon start historyserver
sbin/start-yarn.sh
  • 1
  • 2
  • 3

在这里插入图片描述

在这里插入图片描述

启动成功
在这里插入图片描述

⑥执行WordCount案例

hadoop  jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input/word.txt /output 
  • 1

在这里插入图片描述

查看结果
在这里插入图片描述

结果内容
在这里插入图片描述
在这里插入图片描述

6)集群启动/停止总结

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

HDFS:

start-dfs.sh/stop-dfs.sh
  • 1

YARN:

start-yarn.sh/stop-yarn.sh
  • 1

②各个服务组件逐一启动/停止

分别启动HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode
  • 1

启动/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager 
  • 1

7)Hadoop集群常用脚本

①Hadoop启停脚本

编写一个脚本文件,可以启动HDFS、YARN、HistoryServer

vim /home/lnnu/bin/myhadoop.sh
  • 1
#!/bin/bash 
 
if [ $# -lt 1 ] 
then 
    echo "No Args Input..." 
    exit ; 
fi 
 
case $1 in 
"start") 
        echo " =================== 启动 hadoop 集群 ===================" 
 
        echo " --------------- 启动 hdfs ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh" 
        echo " --------------- 启动 yarn ---------------" 
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh" 
        echo " --------------- 启动 historyserver ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver" 
;; 
"stop") 
        echo " =================== 关闭 hadoop 集群 ===================" 
 
        echo " --------------- 关闭 historyserver ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver" 
        echo " --------------- 关闭 yarn ---------------" 
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh" 
        echo " --------------- 关闭 hdfs ---------------" 
        ssh hadoop102 "/opt/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
  • 32
  • 33

给脚本执行权限

chmod +x myhadoop.sh
  • 1

在这里插入图片描述

脚本测试

myhadoop start
  • 1

在这里插入图片描述

②查看三台服务器Java进程脚本执行权限

vim /home/lnnu/bin/jpsall
  • 1
#!/bin/bash 
 
for host in hadoop102 hadoop103 hadoop104 
do 
        echo =============== $host =============== 
        ssh $host jps  
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

添加执行权限

chmod +x jpsall
  • 1

在这里插入图片描述

测试脚本

jpsall
  • 1

在这里插入图片描述

测试成功,将脚本分发
在这里插入图片描述

8)常用端口号说明

端口名称Hadoop2.xhadoop3.x
NameNode
内部通信端口
8020/90008020/9000/9820
NameNode HTTP UI
(hdfs端口)
500709870
MapReduce
查看执行任务窗口
80888088
历史服务器通信端口1988819888
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/633871
推荐阅读
相关标签
  

闽ICP备14008679号