如何在Hadoop 1.0.4中链接mapper / reducer?

时间:2012-11-21 17:48:58

标签: java api hadoop mapreduce version

我使用的是Hadoop 1.0.4的“新”API(包org.apache.hadoop.mapreduce中的类)。当我想链映射器/缩减器时,我发现ChainMapper,ChainReducer是为“旧”API(包org.apache.hadoop.mapred中的类)编写的。我该怎么办?

2 个答案:

答案 0 :(得分:5)

我也在寻找同样的东西。我确实得到了答案,即使它最近我认为分享这可能对某人有帮助。

从Hadoop 2.0开始,您可以在 org.apache.hadoop.mapreduce.lib.chain

包中找到ChainMapper和ChainReducer。 ChainMapper使用模式:
...
Job job = new Job(conf, "MyJob");

Configuration map1Conf = new Configuration(false); 
... ChainMapper.addMapper(job, AMap.class, LongWritable.class, Text.class, Text.class, Text.class, true, map1Conf);

Configuration map2Conf = new Configuration(false); 
... ChainMapper.addMapper(job, BMap.class, Text.class, Text.class, LongWritable.class, Text.class, false, map2Conf);

Configuration map3Conf = new Configuration(false); 
... ChainReducer.setReducer(job, CReducer.class, Text.class, Text.class, LongWritable.class, Text.class, false, map3Conf);
...

job.waitForComplettion(true);
... 

答案 1 :(得分:0)

请阅读post。这显示了如何使用两个JobConf来启用Map Reduce Jobs的链接,而不是使用ChainMapper / ChainReducer。