我是Hadoop的新手。我的任务是找到一个薪水最高的员工。 在我的firstmap类中,我拆分了这个单词并将键和值放在这个 -
outputcollector.collect("salary",salary);
在我的减速机中,我找到了最高工资,并设置了这样的输出
outputcollector.collect("max salary",maxsalary);
现在我想在另一个映射器中使用此reducer的输出。 我构建了一个像这样的链
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);
但是减速器没有被执行。对此有何帮助?
答案 0 :(得分:0)
你需要创建&为mapper和amp设置相同的JobConf;减少单个Map / Reduce Job。