0

我是 Hadoop 新手。我的任务是找到一个薪水最高的员工。在我的第一个地图类中,我将单词拆分并像这样放置键和值-

outputcollector.collect("salary",salary);

在我的减速器中,我找到了最高薪水并设置了这样的输出

outputcollector.collect("max salary",maxsalary);

现在我想在另一个映射器中使用这个减速器的输出。我已经构建了这样的链

JobConf mapAConf = new JobConf(false);
        ChainMapper.addMapper(conf, mymap.class, LongWritable.class, Text.class, Text.class, IntWritable.class, true, mapAConf); 

JobConf reduceConf = new JobConf(false);
        ChainReducer.setReducer(conf, myreduce.class, Text.class, IntWritable.class, Text.class, IntWritable.class, true, reduceConf);

JobConf mapCConf = new JobConf(false);
       ChainReducer.addMapper(conf, LastMapper.class, Text.class, IntWritable.class, Text.class, IntWritable.class, true, mapCConf);

但是减速器没有被执行。对此有什么帮助吗?

4

1 回答 1

0

您需要为单个 Map/Reduce 作业的 mapper 和 reducer 创建和设置相同的 JobConf。

于 2013-08-20T15:33:14.583 回答