我有一个Mapper,其输入/输出参数为:
(LongWritable,Text,WordPair,IntWritable)
带输入/输出参数的减速机为:
(WordPair,IntWritable,WordPair,DoubleWritable)
我已将JobConf设置为:
conf.setOutputKeyClass(WordPair.class);
conf.setOutputValueClass(DoubleWritable.class);
conf.setMapOutputValueClass(IntWritable.class);
conf.setOutputFormat(TextOutputFormat.class);
但我得到的错误是:
-Java IOException DoubleWritable不是类
-Map工作失败
在进入减速阶段之前,工作也失败了。这部分配置是否正确?我相信我在这里与参数做了一些不匹配。
我是否需要提供更多信息?我正在做相对频率问题,我需要从Double&类型的reducer值输出。我正在使用Old Api。
答案 0 :(得分:0)
我已经弄清楚了这个问题,我知道我正在回答我自己的问题,但这只是因为我想让别人知道他们是否有同样的问题。
这个问题即将到来,因为我已经提到过我的组合器类与reducer类相同,但是根据这个问题,mapper的输入/输出与reducer的输入/输出不同,而组合器应该具有相同的输入/输出映射器。
所以我删除了我设置组合器的行,它工作正常。