在Hadoop中链接Reduce-only工作

时间:2014-04-29 14:29:46

标签: java hadoop mapreduce

我正在使用ControlledJobs在Hadoop 2.2.0中实现一系列MR作业。基本架构是这样的:

mapper1 -> reducer1 -> mapper2 -> reducer2

但是,mapper2是身份。有没有办法轻松让reducer1生成键值对并将它们传递给reducer2?

现在,两轮的作业输出配置如下:

// set intermediate/mapper output
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);

// set reducer output
job.setOutputKeyClass(NullWritable.class);
job.setOutputValueClass(Text.class);

1 个答案:

答案 0 :(得分:0)

据我所知,身份映射器仍然是一个映射器,你无法绕过它。但是,我相信在某些情况下,您可以将mapper1,reducer1和reducer2重构为一个作业,以便它成为:mapper1 - > reducer1。这完全取决于您的用例以及您尝试在此处减少(两次)的数据。