【发布时间】:2013-03-16 15:59:42
【问题描述】:
查看 Hadoop GUI 时,我发现一些 reduce 任务已经达到了 66.66%,并且在那里停留了很长时间。当我检查柜台时,我发现没有。输入记录数显示为零。
很长一段时间后,他们得到他们的输入记录,开始处理它们。 有些甚至在更长的时间内显示 0 个输入记录,并被任务尝试杀死,无法报告状态达 600 毫秒。
但一些 reducer 会立即在其计数器中显示输入记录并立即开始处理它们。
我不知道,为什么某些 reducer 在获取输入记录时会有这么多的延迟。这只发生在这个程序中,而不是其他程序。
在这个mapreduce作业中,我在reduce的reduce方法之前的configure方法中,从分布式缓存中读取了很多数据。这是原因吗?我不确定。
【问题讨论】:
-
减速机卡在哪个阶段?您能否发布相关 TaskTracker 节点的堆栈跟踪的最后几行?
-
尝试记录您的配置方法以查看时间。另请注意,一些长时间运行的映射器可能会导致减速器卡住:它们的 shuffle 阶段持续到最后一个映射器完成。
-
感谢您的评论。我将记录配置方法以查看时间。
标签: java hadoop mapreduce distributed-computing elastic-map-reduce