
# 配置AM作业自动保留
本章节适用于MRS 3.x及后续版本集群。
#### 配置场景
在YARN中，ApplicationMaster(AM)与Container类似，都运行在NodeManager(NM)上（本文中忽略未管理的AM）。AM可能由于多种原因崩溃、退出或关闭。如果AM停止运行，ResourceManager(RM)会关闭ApplicationAttempt中管理的所有Container，其中包括当前在NM上运行的所有Container。RM会在另一计算节点上启动新的ApplicationAttempt。
对于不同类型的应用，希望以不同方式处理AM重启的事件。MapReduce类应用的目标是不丢失任务，但允许丢失当前运行的Container。但是对于长周期的YARN服务而言，用户可能并不希望由于AM的故障而导致整个服务停止运行。
YARN支持在新的ApplicationAttempt启动时，保留之前Container的状态，因此运行中的作业可以继续无故障的运行。
图1AM作业保留   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264266157.png)
#### 配置描述
参考[修改集群服务配置参数](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_2125.html)进入Yarn服务参数"全部配置"界面，在搜索框中输入参数名称。
根据[表1]，对如下参数进行设置。
 表1AM作业保留相关参数 
| 参数                                             | 说明                                                                                                                                                                                                                                          | 默认值   |
|:---|:---|:---|
| yarn.app.mapreduce.am.work-preserve            | 是否开启AM作业保留特性。                                                                                                                                                                                                                               | false |
| yarn.app.mapreduce.am.umbilical.max.retries    | AM作业保留特性中，运行的容器尝试恢复的最大次数。                                                                                                                                                                                                                   | 5     |
| yarn.app.mapreduce.am.umbilical.retry.interval | AM作业保留特性中，运行的容器尝试恢复的时间间隔。单位：毫秒。                                                                                                                                                                                                             | 10000 |
| yarn.resourcemanager.am.max-attempts           | ApplicationMaster的重试次数。增加重试次数可以避免当资源不足时造成AM启动失败。 适用于所有ApplicationMaster的全局设置。每个ApplicationMaster都可以使用API设置一个单独的最大尝试次数，但这个次数不能大于全局的最大次数。如果大于了，那ResourceManager将会覆写这个单独的最大尝试次数。取值范围大于等于1。 | 2     |
   
