早上发现一个任务有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,所以一直无法分配执行。

相关文章:

  • 2021-09-15
  • 2021-12-17
  • 2022-12-23
  • 2017-12-23
  • 2021-06-13
猜你喜欢
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2021-09-18
  • 2022-12-23
  • 2021-07-26
相关资源
相似解决方案