2013-03-31 157 views
0

我有一个映射器,其输入/输出的参数是:
(LongWritable,文字,WordPair,IntWritable)
和与输入/输出参数的减速是:
(WordPair,IntWritable,WordPair ,DoubleWritable)输入输出参数错误的Hadoop

我已将JobConf设置为:
conf.setOutputKeyClass(WordPair.class);
conf.setOutputValueClass(DoubleWritable.class);
conf.setMapOutputValueClass(IntWritable.class);
conf.setOutputFormat(TextOutputFormat.class);

但是我得到错误:
-Java IOException异常DoubleWritable是不是一类
-Map作业失败

而且在作业失败之前要减速机阶段。这部分配置是否正确?我相信我在这里与参数做了一些不匹配。

我需要提供更多信息吗?我正在做相对频率问题,其中我需要输出减速器值类型Double &我使用的是旧Api。

+0

你能提供异常的完整堆栈跟踪吗? – Amar

+0

阿马尔感谢您的回复..现在我明白,这个问题即将到来,因为在配置中我已经提到我的combiner类与reducer类相同,所以部分抛出异常作为组合器输入/输出需要相同地图输入/输出。现在如何解决这个问题? - – JackSparrow

+0

离开它......虽然不太可能,但有可能别人可能会在未来犯同样的错误...... – Amar

回答

0

我已经弄清了这个问题,我知道我回答了我自己的问题,但这只是因为我想让别人知道他们是否有同样的问题。

这个问题来了,因为我提到我的combiner类与reducer类相同,但是根据这个问题,mapper的输入/输出与reducer的输入/输出不同,而combiner应该有相同的输入/输出mapper的。

所以我删除了我设置组合器的线,它工作正常。