Map Reduce job failed with “Unable to initialize any output collector”
问题:
2015-04-24 11:41:41,861 WARN [main] org.apache.hadoop.mapred.YarnChild: Exception running child : java.io.IOException: Unable to initialize any output collector
at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:412)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:439)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
原因:
“无法初始化任何输出收集器”表示工作未能启动容器,可以有多个相同的原因。然而,一个必须检查容器日志在hdfs识别导致错误。在这个特定的实例,mapreduce.task.io.sort.mb内存值输入大于2047 mb,但是它允许的最大值是2047 mb,因此任何高于其导致工作失败标记为无效。
解决方案:
设置mapreduce.task.io.sort.mb < 2048 mb
mapred-site.xml
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>1024</value>
</property>
注:如果是在客户端远程提交Job,则客户端的mapred-site.xml配置文件也需要设置mapreduce.task.io.sort.mb
引用帮助stackoverflow:http://stackoverflow.com/questions/26926571/cdh5-2-mr-unable-to-initialize-any-output-collector?answertab=oldest#tab-top