Hadoop reducer总是失败,map总是成功

Hadoop reducer总是失败,map总是成功,hadoop,mapreduce,hadoop-partitioning,reducers,Hadoop,Mapreduce,Hadoop Partitioning,Reducers,我正在1GB的文本文件上运行简单的字数计算作业。我的群集有8个DataNode和1个namenode,每个节点的存储容量为3GB 当我运行wordcount时,我可以看到map总是成功的,而reducer抛出了一个错误并失败了。请查看下面的错误消息 14/10/05 15:42:02 INFO mapred.JobClient: map 100% reduce 31% 14/10/05 15:42:07 INFO mapred.JobClient: Task Id : attempt_2014

我正在1GB的文本文件上运行简单的字数计算作业。我的群集有8个DataNode和1个namenode,每个节点的存储容量为3GB

当我运行wordcount时,我可以看到map总是成功的,而reducer抛出了一个错误并失败了。请查看下面的错误消息

14/10/05 15:42:02 INFO mapred.JobClient:  map 100% reduce 31%
14/10/05 15:42:07 INFO mapred.JobClient: Task Id : attempt_201410051534_0002_m_000016_0, Status :  FAILED
FSError: java.io.IOException: No space left on device
14/10/05 15:42:14 INFO mapred.JobClient: Task Id : attempt_201410051534_0002_r_000000_0, Status : FAILED
java.io.IOException: Task: attempt_201410051534_0002_r_000000_0 - The reduce copier failed
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:390)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local     directory for     file:/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201410051534_0002/attempt_201410051534_0002_r_000000_0/output/map_18.out
你能告诉我如何解决这个问题吗

谢谢
Navaz

是否设置了mapreduce.task.io.sort.mb和mapreduce.task.io.sort.factor?这些控件控制为合并保留了多少辅助进程内存,以及为合并拆分了多少输出。我能帮忙,谢谢你,斯雷维尼。我没有设置任何这些属性?我需要为这两个因素设置什么值?我在每台机器中的存储空间只有3GB。当shuffle启动时,它会消耗8台机器中的所有磁盘空间,并抛出上述错误。将mapred.local.dir设置为新装入的磁盘后,它解决了问题mapred.local.dir/mnt谢谢您的帮助:)