关于yarn.resourcemanager.am.max-attempts参数含义及场景的技术问询
关于YARN参数
yarn.resourcemanager.am.max-attempts的解释与场景解答 Hey there! Let's break this down clearly for you, step by step.
参数核心含义
yarn.resourcemanager.am.max-attempts这个参数是用来定义单个YARN应用的ApplicationMaster(AM)总共允许被尝试启动的最大次数——这里的次数是包含第一次初始启动的。比如你配置的<value>4</value>,就意味着这个应用的AM最多会有4次启动机会,一旦这4次都失败,YARN就会直接判定整个应用运行失败。
针对你的两个场景的解答
场景1:AM存在启动bug,是否会尝试5次后判定应用失败?
不会。参数值4已经包含了第一次的启动尝试,实际流程是:
- 提交应用后,第一次尝试启动AM(第1次尝试),因启动bug失败;
- YARN自动触发重试,第2次尝试启动AM,依然失败;
- 重复重试逻辑,直到第4次尝试启动失败后,YARN就会终止重试,直接标记应用为失败状态。
所以总共是4次尝试,不是5次。
场景2:手动杀死运行中的AM,系统是否会自动重启?杀死4次后是否不再重启?
分两部分说:
- 手动杀死运行中的AM,系统会自动重启。YARN的ResourceManager会持续监控AM的运行状态,如果AM进程异常终止(包括手动杀死这种人为操作),只要还没达到
yarn.resourcemanager.am.max-attempts设定的最大尝试次数,ResourceManager就会立刻触发AM的重启流程。 - 手动杀死4次后,AM不会再被重启。这里要注意次数的计算逻辑:假设第一次AM成功启动(算第1次尝试),你手动杀死它,YARN重启AM(第2次尝试);再杀死,重启(第3次);再杀死,重启(第4次);当你第4次杀死这个重启后的AM时,总尝试次数已经达到了配置的4次上限,YARN就会停止重试,应用也会被标记为失败。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

