五:ResourceManager High Availability RM 高可用

RM有单点失败的风险,但是可以做HA。

 RMs HA通过master/standby这种结构实现,一个master是active的,其它standby是inactive的。可能通过命令行切换主备节点,也可以在遇到问题时自动切换。
手动切换:
    自动切换失效时,管理员可以执行手动切换。步骤是:先把原来active的RM切换为inactive,然后把一个standby的RM切换为active,通过yarn rmadmin命令台实现。
自动切换:
    通过zookeeper可以实现RM的自动切换。注意:在RM上运行一个ZKFC进程来监控RM的运行状态,RM中已经内嵌了ActiveStandbyElector 进程来检查RM的运行状态。 
clientapplicationMaster odeManager 在 RM failover的表现
    如果有多个RM,则client和其它需要连接到RM的工具需要在配置文件(yarn-site.xml)中把所有的RM都列出来。然后这些client会循环连接这些RMs,直接能连上一个active的RM。如果连接上后,这个RM宕机,则客户端会继续循环连接这些RMs,直到连接上下一个active的RM。这个行为是由org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider实现的,用户可以实现这个类并且修改yarn.client.failover-proxy-provider的值来修改这个行为。

recovering prevous active-RM status 恢复之前的RM状态
    如果启用了RM restart,在active的RM宕机后,standby的RM会接之前active-RM的职责并加载其状态。在有多个RM的情况下,保存RM元数据的state-store必须可以被每个RM访问。有两种方式实现state-store,filesystem和zookeeper,但是只有zookeeper支持任意时刻任意一个RM都可以读写statue-store,这样就解决了多个RM同时读写statu-store的问题(inacitve RM可能会干扰active RM)。因此,RM HA的应用使用zookeeper来实现。使用zookeeper state-store时,不要设置zookeeper.DigestAuthenticationProvider.superDigest(zookeeper权限相关)。

配置:

yarn admin:
$ yarn rmadmin -getServiceState rm1
 active

 $ yarn rmadmin -getServiceState rm2
 standby













































原文地址:https://www.cnblogs.com/skyrim/p/7455976.html