YARN ResourceManager重启作业保留机制

1. 前置

YARN可以通过相关配置支持ResourceManager重启过程中,不影响正在运行的作业,即重启后,作业还能正常继续运行直到结束。

参见详细文档ResourceManagerRestart

涉及配置如下:

key value 备注
yarn.resourcemanager.recovery.enabled true
yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore 有三种StateStore,分别是基于zookeeper, HDFS, leveldb, HA高可用集群必须用ZKRMStateStore
yarn.resourcemanager.work-preserving-recovery.scheduling-wait-ms 10000 默认10000,用默认值即可

备注:

  • 开启了Recovery后,ResourceManger会将应用的状态等信息保存到yarn.resourcemanager.store.class配置的存储介质中,重启后会load这些信息,并且NodeManger会将还在运行的container信息同步到ResourceManager,整个过程不影响作业的正常运行。
  • yarn.resourcemanager.store.class支持三种存储介质的配置(HA集群只支持ZKRMStateStore),选择不同的介质,还需要增加相关配置,详见ResourceManagerRestart
存储 yarn.resourcemanager.store.class
ZooKeeper org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
FileSystem org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore
LevelDB org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore

2. 测试

下面以HA集群跑Hive作业进行相关测试。

2.1 未开启Recovery

若集群未开启Recovery功能,则重启ResourceManager的过程中:

  • Hive作业会失败
    YARN ResourceManager重启作业保留机制
  • YARN UI页面的应用信息丢失
    重启前UI页面显示Hive作业

YARN ResourceManager重启作业保留机制

重启后UI页面作业信息消失
YARN ResourceManager重启作业保留机制

备注:
即使是HA集群,ResourceManager重启后作业也失败。因为其中一个rm1重启,作业会failover切换到rm2,但是rm2上面没有应用的相关信息,所以会出错。

2.2 开启Recovery

若集群开启了Recovery功能,则ResourceManager重启过程中:

  • Hive作业正常运行至结束
  • YARN UI的作业信息一直保留存在

3 E-MapReduce中的配置

  • E-MapReduce的EMR-3.9.0/EMR-2.9.2 以上(不包含)的版本高可用(HA)集群默认开启
  • 老版本的集群用户可以根据上述进行配置即可

欢迎加入E-MapReduce用户群
YARN ResourceManager重启作业保留机制

上一篇:Crack Me 破解 Acid burn 详解


下一篇:断点调试