配置YARN Restart特性
配置场景
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类。  | 
      
        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异步恢复方式。  | 
      
        true  | 
     
| 
        yarn.resourcemanager.zk-state-store.num-fetch-threads  | 
      
        启用异步恢复功能,增加工作线程的数量可以加快恢复ZK中保存的任务信息的速度,取值范围大于0。  | 
      
        20  | 
     
NodeManager Restart特性配置如下。
| 
        参数  | 
      
        描述  | 
      
        默认值  | 
     
|---|---|---|
| 
        yarn.nodemanager.recovery.enabled  | 
      
        当Nodemanager重启时是否启用日志失败收集功能,是否恢复未完成的Application。  | 
      
        true  | 
     
| 
        yarn.nodemanager.recovery.dir  | 
      
        NodeManager用于保存container状态的本地目录。  | 
      
        ${SRV_HOME}/tmp/yarn-nm-recovery  | 
     
| 
        yarn.nodemanager.recovery.supervised  | 
      
        NodeManager是否在监控下运行。开启此特性后NodeManager在退出后不会清理containers,NodeManager会假设自己会立即重启和恢复containers。  | 
      
        true  |