配置ResourceManager重启后自动加载Container信息
配置场景
YARN Restart特性包含两部分内容:ResourceManager Restart和NodeManager Restart。
- 当启用ResourceManager Restart时,升主后的ResourceManager就可以通过加载之前的主ResourceManager的状态信息,并通过接收所有NodeManager上container的状态信息,重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,就可以避免工作内容的丢失。
- 当启用NodeManager Restart时,NodeManager在本地保存当前节点上运行的container信息,重启NodeManager服务后通过恢复此前保存的状态信息,就不会丢失在此节点上运行的container进度。
配置描述
参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。
ResourceManager Restart特性配置如下。
参数 |
描述 |
默认值 |
---|---|---|
yarn.resourcemanager.recovery.enabled |
设置是否让ResourceManager在启动后恢复状态。如果设置为true,那yarn.resourcemanager.store.class也必须设置。 |
true |
yarn.resourcemanager.store.class |
指定用于保存应用程序和任务状态以及证书内容的state-store类。 |
MRS 3.x之前的版本集群:org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore MRS 3.x及后续版本集群: org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore |
yarn.resourcemanager.zk-state-store.parent-path |
ZKRMStateStore在ZooKeeper上的保存目录。 |
/rmstore |
yarn.resourcemanager.work-preserving-recovery.enabled |
启用ResourceManager Work preserving功能。该配置仅用于YARN特性验证。 |
true |
yarn.resourcemanager.state-store.async.load |
对已完成的application采用ResourceManager异步恢复方式。 |
MRS 3.x之前的版本集群:false MRS 3.x及后续版本集群:true |
yarn.resourcemanager.zk-state-store.num-fetch-threads |
启用异步恢复功能,增加工作线程的数量可以加快恢复ZK中保存的任务信息的速度,取值范围大于0。 |
MRS 3.x之前的版本集群:1 MRS 3.x及后续版本集群:20 |
NodeManager Restart特性配置如下。
参数 |
描述 |
默认值 |
---|---|---|
yarn.nodemanager.recovery.enabled |
当Nodemanager重启时是否启用日志失败收集功能,是否恢复未完成的Application。 |
true |
yarn.nodemanager.recovery.dir |
NodeManager用于保存container状态的本地目录。适用于MRS 3.x及后续版本集群。 |
${SRV_HOME}/tmp/yarn-nm-recovery |
yarn.nodemanager.recovery.supervised |
NodeManager是否在监控下运行。开启此特性后NodeManager在退出后不会清理containers,NodeManager会假设自己会立即重启和恢复containers。 |
true |