
# 配置ResourceManager重启后自动加载Container信息
#### 配置场景
YARN Restart特性包含两部分内容：ResourceManager Restart和NodeManager Restart。
- 当启用ResourceManager Restart时，升主后的ResourceManager就可以通过加载之前的主ResourceManager的状态信息，并通过接收所有NodeManager上container的状态信息，重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息，就可以避免工作内容的丢失。
- 当启用NodeManager Restart时，NodeManager在本地保存当前节点上运行的container信息，重启NodeManager服务后通过恢复此前保存的状态信息，就不会丢失在此节点上运行的container进度。
 
#### 配置描述
参考[修改集群服务配置参数](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_2125.html)进入Yarn服务参数"全部配置"界面，在搜索框中输入参数名称。
ResourceManager Restart特性配置如下。
表1ResourceManager 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特性配置如下。
表2NodeManager 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                             |
   
