Hadoop ”No room for reduce task“问题处理

早上发现一个任务有20个reduce,但是只有四个正常完成,剩余16个等待了8个小时才分配执行(集群槽位资源充足)

解决方法:查看了集群的log,发现有这种warn:

2013-09-11 01:56:38,620 WARN org.apache.hadoop.mapred.JobInProgress: No room for reduce task. Node tracker_s
lave028.hadoop.sjs.org:localhost/127.0.0.1:54676 has 91520086016 bytes free; but we expect red
uce input to take 107851739205

 

这个是指hadoop在分配reduce任务的时候,会先遍历一下集群所有机器的磁盘空间,如果中间结果的数据量大于磁盘剩余空间,

就会出现no room。例如上面的磁盘空间剩余为90G,但reduce有107G的input,所以一直无法分配执行。

posted @ 2013-09-11 17:12  王晓伟  阅读(320)  评论(0编辑  收藏  举报