当我检查Hadoop GUI时,发现某些reduce任务已达到66.66%,并且他们在那里呆了很长时间。当我查看柜台时,我发现没有。的输入记录显示为零。Reducer节点需要很长时间才能收到其记录
经过很长时间,他们得到他们的输入记录,开始处理它们。 一些显示0输入记录甚至更长的时间,并被任务尝试失败报告600毫秒的状态。
但是,一些减速器立即在其计数器中显示输入记录,并立即开始处理它们。
我不知道,为什么在获取某些reducer的输入记录方面有这么多延迟。这只发生在这个程序中,而不是其他程序。
在这个mapreduce作业中,我在reduce的reduce方法之前的configure方法中,从分布式缓存中读取了很多数据。这是原因吗?我不确定。
减速机停在哪个阶段?您可以发布有问题的TaskTracker节点的堆栈跟踪的最后几行吗? – 2013-03-16 17:05:06
尝试记录您的配置方法以查看时间。另请注意,只要最后一个映射器完成,一些长时间运行的映射器可能会导致减速器卡住: 其洗牌阶段将持续。 – 2013-03-16 17:21:24
感谢您的评论。我将记录配置方法以查看时间。 – 2013-03-17 00:29:45