目录
ResourceManager是YARN集群资源管理和任务调度的关键部件,和HDFS的NameNode节点服务一样,为了提高高可靠性,我们需要做YARN-HA(YARN High Availability),即设置多个ResourceManager节点服务,当活动的ResourceManager节点服务器宕机,备用的ResourceManager可以接管所有的工作,继续对外提供服务。
相比于HDFS-HA,YARN-HA要简单的多。
说明:三台机器的主机名是:bigdata.centos01、bigdata.centos02、bigdata.centos03,其中在01和02上面部署ResourceManager节点服务,在三台机器上部署NodeManager服务。
一、YARN-HA的配置
说明:该配置是基于单ResourceManager节点上做配置,如未配置好单ResourceManager节点服务,请参阅:Hadoop集群搭建
1. 修改yarn-site.xml文件
- 注释如下配置项
<!-- 单resourmanager配置时,指定部署resourcemanager机器的主机名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata.centos01</value>
</property>
- 增加如下配置项
<!-- 是否启动resourcemanager的ha -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 类似于namenode-ha的nameservice,命名一个逻辑名称 -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>rs</value>
</property>
<!-- resourcemanager节点id -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 配置rm1的主机名 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>bigdata.centos01</value>
</property>
<!-- 配置rm2的主机名 -->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>bigdata.centos02</value>
</property>
<!-- 配置rm1的webapp访问地址 -->
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>bigdata.centos01:8088</value>
</property>
<!-- 配置rm2的webapp访问地址 -->
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>bigdata.centos02:8088</value>
</property>
<!-- 配置zookeeper集群 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>bigdata.centos01:2181,bigdata.centos02:2181,bigdata.centos03:2181</value>
</property>
<!-- 开启重启作业保留机制,即重启后,作业还能正常继续运行直到结束 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 将应用的状态等信息保存zookeeper -->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
- 配置文件分发至其他机器
scp <file> <hostname>:<filepath>
二、测试
测试流程:运行单词统计(wordcount)的MapReduce任务。在运行过程中,将活动(active)状态的ResourceManager节点服务停止,看后备(standby)状态的ResourceManager节点服务能否更改状态为活动(active),继续执行MapReduce任务。
- 启动ResourceManager
# 启动centos01和centos02的服务
sbin/yarn-daemon.sh start resourcemanager
- 启动NodeManager
# 启动centos01、centos02和centos03服务
sbin/yarn-daemon.sh start nodemanager
- 执行mapred任务
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.9.jar wordcount /user/data/wc.input /user/data/output