首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Mapreduce程序时出错

运行Mapreduce程序时出错
EN

Stack Overflow用户
提问于 2011-08-18 15:18:53
回答 3查看 3.8K关注 0票数 1

我在运行Map-reduce程序时遇到以下错误。

代码语言:javascript
复制
The program is to sort the o/p using TotalOrderpartition.

I have 2 node cluster. 
when i run teh program with -D mapred.reduce.tasks=2 its working fine
 But its failing with below error while running with -D mapred.reduce.tasks=3 option.


java.lang.RuntimeException: Error in configuring object
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
        at org.apache.hadoop.mapred.MapTask$OldOutputCollector.<init>(MapTask.java:448)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
        at org.apache.hadoop.mapred.Child.main(Child.java:170)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88)
        ... 6 more
Caused by: java.lang.IllegalArgumentException: Can't read partitions file
        at org.apache.hadoop.mapred.lib.TotalOrderPartitioner.configure(TotalOrderPartitioner.java:91)
        ... 11 more
Caused by: java.io.IOException: Split points are out of order
        at org.apache.hadoop.mapred.lib.TotalOrderPartitioner.configure(TotalOrderPartitioner.java:78)
        ... 11 more

Plese let me know whats wrong here?

Thanks
R
EN

回答 3

Stack Overflow用户

发布于 2012-07-08 22:03:05

可以提到的最大reducers数量等于集群中的节点数量。由于此处的节点数为2,因此不能将reducers的数量设置为大于2。

票数 2
EN

Stack Overflow用户

发布于 2011-08-19 14:24:37

听起来您的分区文件中没有足够的键。docs表示,TotalOrderpartitioner要求您的分区SequenceFile中至少有N-1个键,其中N是减法器的数量。

票数 1
EN

Stack Overflow用户

发布于 2013-07-26 17:46:48

我也遇到了这个问题,通过检查源码发现,因为样本的原因,增加reduce的数量使得在拆分点有相同的元素,所以抛出这个错误。它与数据有关系。输入hadoop fs - text _partition看看文件生成的分区,如果你的任务失败了,那里一定有相同的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7103734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档