前言
现实中,用户代码错误、进程崩溃、机器故障等等都可能导致MapReduce程序失败,但是Hadoop最主要的好处之一就是它能处理此类故障并完成作业。
失败
-
经典MapReduce中的失败
-
YARN中的失败
YARN中的失败
主要考虑三种实体的失败:任务、application master、节点资源管理器和资源管理器
(1)任务失败
-
任务运行失败类似于经典MapReduce中的运行任务失败。JVM的运行时异常和突然退出被反馈给application master,该任务尝试被标记为失败。
-
类似的通过在umbilical channel上的ping缺失(即超时,由mapreduce.task.time设置超时时间),application master会注意到挂起的任务,任务尝试也会被标记为失败
-
确定任务失败的配置属性和经典MapReduce中的一样:4次尝试后任务将标记为失败,可通过参数设置Map:mapreduce.reduce.maxattempts和Reduce:mapreduce.reduce.maxattempts。如果一个作业中超过mapreduce.map.failures.maxp