从Jobtracker网页界面,我看到这个名为“失败/被杀”的专栏 任务尝试“。
我想知道它们之间的区别。我猜“失败者”意味着在重试之后最终失败的任务(因此根本没有完成恢复?)而“被杀死者”意味着被杀死的任务(由于超时等等),但是他们可能会被重试?
答案 0 :(得分:11)
Hadoop可以通过自己的决定杀死任务有几个原因:
a)任务在超时期间不报告进度(默认为10分钟)
b)FairScheduler或CapacityScheduler需要其他池(FairScheduler)或队列(CapacityScheduler)的插槽。
c)推测执行导致任务结果不需要,因为它已在其他地方完成。
答案 1 :(得分:8)
Hadoop使用“推测性执行”。可以在多个框上启动相同的任务。第一个完成胜利,其他副本被杀死。
失败的任务是错误输出的任务。
答案 2 :(得分:1)
由于超时任务未被标记为已杀死但被标记为失败,因此我不同意David的意见。
根据我的理解,下面是失败与被杀任务的定义
由于,任务可能失败
由于
,任务可能被杀死答案 3 :(得分:0)
失败的任务是在运行期间抛出异常的尝试,被杀死的任务是在推测执行过程中被杀死的重复任务。
答案 4 :(得分:0)
任务失败 1.有缺陷的地图或减少代码(运行时异常错误) 突然退出jvm 3.挂起任务(如果启用则可能触发推测执行)
被杀的任务 1.投机执行会杀死长期工作。 2.如果用户自己杀了一份工作。 3.任务跟踪器故障