【发布时间】:2015-05-19 09:49:15
【问题描述】:
我还在 CDH3 -Hadoop 0.20.2-cdh3u1 上收到错误“拆分元数据大小超过 10000000”问题。就我而言,有两个输入 inp1 大小 = 1GB inp2 大小 = 7 MB
当我使用 mapred.max.split.size = 256MB 时,它会引发以下错误。
Job initialization failed: java.io.IOException: Split metadata size exceeded 10000000. Aborting job job_201412112225_1046114 at org.apache.hadoop.mapreduce.split.SplitMetaInfoReader.readSplitMetaInfo(SplitMetaInfoReader.java:48) at org.apache.hadoop.mapred.JobInProgress.createSplits(JobInProgress.java:814) at org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:708) at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:4016) at org.apache.hadoop.mapred.EagerTaskInitializationListener$InitJob.run(EagerTaskInitializationListener.java:79) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
当我更改 mapred.max.split.size = 8MB 时,它运行成功,但需要太多映射器。
具有相同配置的相同作业在 cdh4.6 上运行良好
解决此问题的任何提示/建议。
【问题讨论】:
-
这些链接会对您有所帮助,blog.dongjinleekr.com/… 或 garrens.com/blog/2014/12/08/…
-
如果它适合你,请告诉我
-
两篇文章都谈到了修改mapreduce.jobtracker.split.metainfo.maxsize=-1。我不想更改此属性,因为如果集群没有资源来处理实际作业,这可能会导致意想不到的后果。
-
您也可以通过命令行传递此配置。命令应该是
-D mapreduce.jobtracker.split.metainfo.maxsize=-1或者你也可以在你的 MapReduce 代码中设置这个配置。 -
通过命令行传递配置或在 MapReduce 程序中设置属性将是特定于作业的。
标签: hadoop dictionary split mapreduce metadata