map-> map-> reduce-> reduce->最终输出

时间:2012-03-17 11:34:11

标签: hadoop mapreduce chaining

最近我读了一篇论文,提出了从DNA数据中挖掘最大连续模式的算法。提出的方法听起来很有趣,使用了以下MapReduce模型。 MAP-> MAP-> reduce->减少。即,执行第一映射阶段并将其输出输入到第二阶段映射。第二相位图的输出被输入到第一相位减少。第一阶段reduce的输出输入到第二阶段reduce,最后将结果刷新到HDFS。 虽然这似乎是一种有趣的方法,但该文章并未提及它们是如何实现的。我的问题是,你如何实现这种MapReduce链接?

3 个答案:

答案 0 :(得分:1)

在Hadoop中,据我所知,你现在不能这样做。

一种方法可以是使用ChainMapper来执行map-> map-> reduce part。然后,将此作业的结果发送到另一个作业,并将映射器设置为IdentityMapper,将缩减器设置为您拥有的第二个相位缩减器。

答案 1 :(得分:0)

我认为有两种方法可以解决您的问题:

  1. 将两个地图功能代码集成到一个具有两个阶段的地图任务中。使用与map相同的方法减少任务。

  2. 将map-map-reduce-reduce进度划分为两个作业:将第二个地图任务类型转换为减少任务后,将两个地图作为第一个Hadoop作业;在将第一个reduce任务转换为map之后,two减少了第二个Hadoop作业。如果根据其他人提交一些hadoop作业,您可以使用Oozie来处理Hadoop工作流程。

答案 2 :(得分:0)

请阅读TEZ。 M-> M-> R-> R-> R在那里支持任何组合