YARN 异常处理

5 篇文章 0 订阅

对于 YARN 的异常处理来说,需要对运行过程中所有的过程对象进行处理,这其中包括当前任务发生的异常,对任务调度器,节点管理器和资源管理器的处理等。

首先对于任务失败,与 MapReduce 任务失败相类似,直接报出运行异常并且从所运行的 JVM 中退出,其中 Task Attempt 失败这个消息会通知 Application Master,由 Application Master 标记其为失败。

当 Task 失败的比例大于MapReduce.Map.failures.maxpercent(Map)或者 MapReduce.Reduce.failures.maxpercent(reduece)时候, Job 失败。

而对于 Application Master 失败来说,当 Application Master 失败,会被标记为失败,这时候 Resource Manager 会立刻探寻到 Application Master 的失败,并新实例化一个Application Mast 和借助 NodeManager 建造新的相应的 Container ,并且在设置yarn.app.MapReduce.am.job.recovery.enable 为 true 情况下失败情况下尝试将

Application Master 恢复,并且恢复后并不返回。默认情况下,失败 Application Master会让所有的 Task 返回

如果客户端轮询得知 Application Master 失败后,经过一段时间失败状态仍然没有改变,则重新向 ResourceManager 申请相应的资源。

当 Node Manager 的失败,会停止向 Resource Manager 发送心跳,则 Resource Manager会将这个 Node Manager 从可用的 Node Manager 池中移出,心态间隔时间可由yarn.resourcemanager.nm.liveness-monitor.expiry-interval-ms 设置,默认是 10 分钟

同样的与经典 MapReduce 类似,如果 Node Manager 上 Application Manager 失败次数过高,此 Node Manager 会被列入黑名单, Application Manager 会在不同 Node 上重新运行Task。

所有的错误中 Resources Manager 失败是最为严重的,因为没有 Resources Manager则没有任何一个任务或任务容器能够被配置和调度。为了解决一旦 Resources Manager 发生异常则整个集群陷入瘫痪, YARN 采用了 checkpointing 尝试去重建 Resources Manager。这个功能目前为止还在开发中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值