1 集群部署规划
-
集群部署规划
pcnode01 pcnode02 pcnode03 HDFS NameNode
DataNode
DataNodeSecondaryNameNode
DataNodeYARN
NodeManagerResoureManager
NodeManager
NodeManager -
注意点
- NameNode和SecondaryNameNode很消耗内存,不要安装在同一台服务器
- 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
-
启动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
启动yarnmapred --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
启动yarnmapred --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 |