如何向Hadoop作业报告进度以避免任务被超时杀死?

时间:2012-02-06 12:44:51

标签: timeout hadoop mapreduce

1)我有一个仅限地图的Hadoop作业,它将数据流式传输到Cassandra集群。

2)有时流式播放需要10分钟以上,并且由于未向作业报告进度,因此它会终止任务。

3)我试图用context.progress()方法报告进度,但没有帮助。

还有什么需要报告hadoop工作的进展吗?

我编写了一个示例代码,用于模拟问题并使用以下代码。

Thread.sleep(360000);

context.progress();

Thread.sleep(360000);

失败并显示以下错误消息

  

12/02/06 11:40:25 INFO mapred.JobClient:任务ID:   attempt_201202061119_0001_m_000001_1,状态:FAILED任务   attempt_201202061119_0001_m_000001_1无法报告601的状态   秒。杀死!

2 个答案:

答案 0 :(得分:0)

请看这个问题:
How to fix "Task attempt_201104251139_0295_r_000006_0 failed to report status for 600 seconds."

mapred.task.timeout属性设置为更高的值是解决此问题的最简单方法。

答案 1 :(得分:0)

context.progress()应该有效,但可能是您面临以下问题:https://issues.apache.org/jira/browse/MAPREDUCE-1905,在更高版本中已修复。

相关问题