所有作业都使用hadoop-streaming成功运行,但突然间我开始看到由于其中一台工作机器而导致的错误
Hadoop job_201110302152_0002 failures on master
Attempt Task Machine State Error Logs
attempt_201110302152_0002_m_000037_0 task_201110302152_0002_m_000037 worker2 FAILED
Task attempt_201110302152_0002_m_000037_0 failed to report status for 622 seconds. Killing!
-------
Task attempt_201110302152_0002_m_000037_0 failed to report status for 601 seconds. Killing!
Last 4KB
Last 8KB
All
问题:
- Why does this happening ?
- How can I handle such issues?
谢谢
答案 0 :(得分:1)
mapred.task.timeout的默认值为600s的说明“如果任务既不读取输入,也不写入输出,也不更新其状态字符串,则任务终止前的毫秒数。”
增加mapred.task.timeout的值可能会解决问题,但是你需要弄清楚map任务是否真的需要超过600s才能完成处理输入数据,或者代码中是否存在错误需要调试。
根据Hadoop最佳实践,平均一个地图任务应该花一分钟左右来处理一个InputSplit。