更新时间:2024-11-29 GMT+08:00

配置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的状态,因此运行中的作业可以继续无故障的运行。

图1 AM作业保留

配置描述

参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。

根据表1,对如下参数进行设置。

表1 AM作业保留相关参数

参数

说明

默认值

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