配置AM作业自动保留
配置场景
在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的状态,因此运行中的作业可以继续无故障的运行。
配置描述
参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。
根据表1,对如下参数进行设置。
参数 |
说明 |
默认值 |
---|---|---|
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 |