差异失败任务与被杀死的任务

时间:2012-06-22 23:40:52

标签: hadoop mapreduce

从Jobtracker网页界面,我看到这个名为“失败/被杀”的专栏 任务尝试“。

我想知道它们之间的区别。我猜“失败者”意味着在重试之后最终失败的任务(因此根本没有完成恢复?)而“被杀死者”意味着被杀死的任务(由于超时等等),但是他们可能会被重试?

5 个答案:

答案 0 :(得分:11)

Hadoop可以通过自己的决定杀死任务有几个原因:
a)任务在超时期间不报告进度(默认为10分钟) b)FairScheduler或CapacityScheduler需要其他池(FairScheduler)或队列(CapacityScheduler)的插槽。
c)推测执行导致任务结果不需要,因为它已在其他地方完成。

答案 1 :(得分:8)

Hadoop使用“推测性执行”。可以在多个框上启动相同的任务。第一个完成胜利,其他副本被杀死。

失败的任务是错误输出的任务。

答案 2 :(得分:1)

由于超时任务未被标记为已杀死但被标记为失败,因此我不同意David的意见。

根据我的理解,下面是失败与被杀任务的定义

由于

任务可能失败

  1. 任务抛出运行时异常
  2. 儿童JVM突然退出
  3. 超出mapred.task.timeout的超时
  4. 由于

    ,任务可能被杀死
    1. FairScheduler或CapacityScheduler需要其他池(FairScheduler)或队列(CapacityScheduler)的插槽。
    2. 推测执行导致任务结果不需要,因为它已在其他地方完成。
    3. 用户还可以使用Web UI或命令行终止或失败任务尝试

答案 3 :(得分:0)

失败的任务是在运行期间抛出异常的尝试,被杀死的任务是在推测执行过程中被杀死的重复任务。

答案 4 :(得分:0)

任务失败 1.有缺陷的地图或减少代码(运行时异常错误) 突然退出jvm 3.挂起任务(如果启用则可能触发推测执行)

被杀的任务 1.投机执行会杀死长期工作。 2.如果用户自己杀了一份工作。 3.任务跟踪器故障