配置Yarn实例重启后自动加载Container信息
操作场景
YARN Restart特性包含两部分内容:ResourceManager Restart和NodeManager Restart。
- 当启用ResourceManager Restart时,备ResourceManager升主后,ResourceManager就可以通过加载之前的主ResourceManager的状态信息,并通过接收所有NodeManager上Container的状态信息,重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,避免工作内容的丢失。
- 当启用NodeManager Restart时,NodeManager在本地保存当前节点上运行的Container信息,重启NodeManager服务后通过恢复此前保存的状态信息,会避免丢失在此节点上运行的Container进度。
配置ResourceManager Restart特性
- 登录FusionInsight Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
- 搜索并根据实际需要修改相关参数。
表1 ResourceManager Restart参数配置 参数
描述
默认值
yarn.resourcemanager.recovery.enabled
是否开启ResourceManager在启动后恢复状态。
- true:开启。ResourceManager会启用恢复机制,能够在发生故障后恢复其状态。开启后需要设置“yarn.resourcemanager.store.class”参数。
- false:关闭。ResourceManager不会自动保存其状态,故障后需要重新初始化。
true
yarn.resourcemanager.store.class
指定用于保存应用程序和任务状态以及证书内容的state-store类。
取值范围:
- org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore:基于ZooKeeper的state-store实现。
- org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore:基于ZooKeeper的异步启动应用程序的state-store实现。
- org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSysteMapReduceMStateStore:类似HDFS的基于Hadoop文件系统的state-store实现。选择该参数后,则必须设置“yarn.resourcemanager.store.class”参数。
org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore
yarn.resourcemanager.zk-state-store.parent-path
存储ResourceManager状态的ZooKeeper znode全路径。
如果“yarn.resourcemanager.store.class”设置为“org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSysteMapReduceMStateStore”,则必须设置当前参数。
/rmstore
yarn.resourcemanager.work-preserving-recovery.enabled
是否启用ResourceManager任务保持恢复功能。该配置仅用于Yarn特性验证。
- true:开启。ResourceManager在发生故障后能够保留之前的工作状态。
- false:关闭。ResourceManager不会启用任务保持恢复机制,故障恢复时需要重新初始化资源和任务。
true
yarn.resourcemanager.state-store.async.load
对已完成的application是否启用ResourceManager异步恢复方式。
- true:开启。ResourceManager在启动时会以异步的方式从状态存储中加载之前保存的状态信息。
- false:关闭。ResourceManager在启动时会以同步的方式加载状态信息,可能会增加启动时间。
true
yarn.resourcemanager.zk-state-store.num-fetch-threads
在开启异步模式加载任务后,加载任务线程的数量。
启用异步恢复功能,增加工作线程的数量可以加快恢复ZooKeeper中保存的任务信息的速度。取值范围大于0。
20
- 保存修改的配置。保存完成后请重新启动配置过期的实例以使配置生效。
配置NodeManager Restart特性
- 登录FusionInsight Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
- 搜索并根据实际需要修改相关参数。
表2 NodeManager Restart参数配置 参数
描述
默认值
yarn.nodemanager.recovery.enabled
当NodeManager重启时是否启用日志失败收集功能,是否恢复未完成的Application。
- true:开启。NodeManager会在节点故障后恢复之前运行的任务或容器。
- false:关闭。NodeManager不会自动保存其状态,故障后需要重新初始化。
true
yarn.nodemanager.recovery.dir
NodeManager用于保存Container状态的本地目录。
- 当NodeManager启用恢复功能时,会将任务的状态信息保存到该目录中,以便在节点故障后能够恢复任务。
- 该参数在“yarn.nodemanager.recovery.enabled”配置为“true”时有效。
注意:请谨慎修改该项。如果配置不当,将造成服务不可用。当角色级别的该配置项修改后,所有实例级别的该配置项都将被修改。如果实例级别的配置项修改后,其他实例的该配置项的值保持不变。
${SRV_HOME}/tmp/yarn-nm-recovery
yarn.nodemanager.recovery.supervised
NodeManager是否在监督模式下运行。
- true:开启。开启此特性后NodeManager在退出后不会清理Containers,NodeManager会尝试重启和恢复Containers。
- false:关闭。NodeManager在退出后不会尝试重启和恢复Containers。
true
- 保存修改的配置。保存完成后请重新启动配置过期的实例以使配置生效。