RM运行失败
资源管理器失败是个很严重的问题,这意味着作业和任务容器都将无法启动,默认情况下RM也是个单点故障。所以为了得到高可用性,运行一对RM是很有必要的。当活动RM失败了,备用RM通过zookeeper管理能自动顶替上。
所有运行中的应用的信息存储在一个高可用的状态存储区中(由ZK或HDFS备份),这样备用RM可以恢复失败的活动RM的关键状态,这与通过QJM实现namenode的高可用是类似的。而节点管理器NM信息不会存储在状态存储区中,因为当NM向刚启动的新RM发送第一个心跳时,NM的信息能以相当快递的速度在新的RM中重构。
备用的RM启动后,它会从状态存储区中读取所有应用的信息,然后为它们重启各自对应的Application Master。在活动RM故障时,客户和NM以轮询方式视图连接每一个RM,直到找到活动RM。
RM高可用配置
首先部署zookeeper集群,可参考Hadoop:使用QJM搭建HDFS高可用性(HA)集群及使用zookeeper自动故障转移
zookeeper进程运行在master1、slave2和slave3上
修改yarn-site.xml文件:
<!-- 允许RM的高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 不能与当前存在的ID号相同 -->