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的状态 秒。杀死!
答案 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,在更高版本中已修复。