0

我有一个映射器,它的输入/输出参数是:
(LongWritable,Text,WordPair,IntWritable)
和输入/输出参数的reducer是:
(WordPair,IntWritable,WordPair,DoubleWritable)

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

但我收到错误消息:
-Java IOException DoubleWritable is not a class
-Map Job Failed

在进入减速器阶段之前,这项工作也失败了。我的这部分配置是否正确?我相信我在这里与参数做了一些不匹配。

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

4

1 回答 1

0

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

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

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

于 2013-03-31T20:59:20.170 回答