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

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

一、Hadoop集群配置

1)集群部署规划

注意:

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

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

所以安装规划如下

hadoop102 hadoop103 hadoop104
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
YARN NodeManger ResourceManager
NodeManger
NodeManager

2)配置文件

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

自定义文件主要有

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

自定义文件说明

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

3)配置集群

①核心配置文件

配置core-site.xml

vim hadoop-3.1.3/etc/hadoop/core-site.xml
 
 
 
 
     
     
        fs.defaultFS 
        hdfs://hadoop102:8020 
     
 
     
     
        hadoop.tmp.dir 
        /opt/module/hadoop-3.1.3/data 
     
 
     
     
        hadoop.http.staticuser.user 
        lnnu 
     

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第1张图片

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

②HDFS配置文件

配置hdfs-site.xml

vim hadoop-3.1.3/etc/hadoop/hdfs-site.xml
<?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>

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第2张图片

注意:9870是访问hdfs端口

③yarn配置文件

配置yarn-site.xml

vim hadoop-3.1.3/etc/hadoop/yarn-site.xml
<?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>

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第3张图片

④MapReduce配置文件

配置mapred-site.xml

vim hadoop-3.1.3/etc/hadoop/mapred-site.xml
<?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>

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第4张图片

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

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

5)查看是否分发成功

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第5张图片

二、启动集群

1)配置workers

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

vim  /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop102 
hadoop103 
hadoop104 

注意:文件中不允许有空格,也不允许有空行。因为集群无法识别你的空格和空行是否为一台机器
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第6张图片

分发到其他节点

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

2)启动集群

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

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

hdfs namenode -format

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第7张图片

②启动HDFS

sbin/start-dfs.sh

在这里插入图片描述

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

sbin/start-yarn.sh

在这里插入图片描述

④web端查看HDFS的NameNode

浏览器:http://hadoop102:9870
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第8张图片

⑤web端查看YARN的ResourceManager

浏览器:http://hadoop103:8088
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第9张图片

3)集群小测试

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

①上传文件到集群

hadoop fs -mkdir /input
hadoop fs -put fileName /wc

在这里插入图片描述

上传大文件

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

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第10张图片

查看是否成功
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第11张图片

4)配置历史服务器

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

vim mapred-site.xml

增加内容

 
<property> 
    <name>mapreduce.jobhistory.addressname> 
    <value>hadoop102:10020value> 
property> 
 
 
<property> 
    <name>mapreduce.jobhistory.webapp.addressname> 
    <value>hadoop102:19888value> 
property>

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第12张图片

②分发历史服务器

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

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第13张图片

③启动历史服务器

mapred --daemon start historyserver

在这里插入图片描述

④查看是否启动成功

jps

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第14张图片

⑤web端查看JobHistory

http://hadoop102:19888/jobhistory
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第15张图片

5)配置日志的聚集

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

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

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

开启步骤:

①配置yarn-site.xml

vim yarn-site.xml

增加配置

 
<property> 
    <name>yarn.log-aggregation-enablename> 
    <value>truevalue> 
property> 
 
<property>   
    <name>yarn.log.server.urlname>   
    <value>http://hadoop102:19888/jobhistory/logsvalue> 
property> 
 
<property> 
    <name>yarn.log-aggregation.retain-secondsname> 
    <value>604800value> 
property>

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第16张图片

②分发配置

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

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第17张图片

③关闭NameManager、ResourceManager、HistoryServer

sbin/stop-dfs.sh
sbin/stop-yarn.sh
mapred  --daemon stop historyserver

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第18张图片
在这里插入图片描述

④确认已经关闭

jps

在这里插入图片描述

⑤启动NameManager、ResourceManager、HistoryServer

sbin/start-dfs.sh
mapred --daemon start historyserver
sbin/start-yarn.sh

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第19张图片

在这里插入图片描述

启动成功
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第20张图片

⑥执行WordCount案例

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

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第21张图片

查看结果
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第22张图片

结果内容
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第23张图片
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第24张图片

6)集群启动/停止总结

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

HDFS:

start-dfs.sh/stop-dfs.sh

YARN:

start-yarn.sh/stop-yarn.sh

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

分别启动HDFS组件

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

启动/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager 

7)Hadoop集群常用脚本

①Hadoop启停脚本

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

vim /home/lnnu/bin/myhadoop.sh
#!/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 

给脚本执行权限

chmod +x myhadoop.sh

在这里插入图片描述

脚本测试

myhadoop start

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第25张图片

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

vim /home/lnnu/bin/jpsall
#!/bin/bash 
 
for host in hadoop102 hadoop103 hadoop104 
do 
        echo =============== $host =============== 
        ssh $host jps  
done

添加执行权限

chmod +x jpsall

在这里插入图片描述

测试脚本

jpsall

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第26张图片

测试成功,将脚本分发
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚_第27张图片

8)常用端口号说明

端口名称 Hadoop2.x hadoop3.x
NameNode
内部通信端口
8020/9000 8020/9000/9820
NameNode HTTP UI
(hdfs端口)
50070 9870
MapReduce
查看执行任务窗口
8088 8088
历史服务器通信端口 19888 19888

你可能感兴趣的:(hadoop,hadoop,big,data)