2012-03-17 38 views
1

最近,我读,该算法用于从DNA数据开采最大毗连图案的纸。提出的方法听起来很有趣,它使用了以下的MapReduce模型。 map-> map-> reduce-> reduce。即,执行第一映射阶段并将其输出输入到第二阶段映射。第二阶段图的输出被输入到第一阶段缩减。第一阶段reduce的输出被输入到第二阶段reduce,最后结果被刷新到HDFS中。 虽然这看起来像一个有趣的方法,但该报没有提到他们是如何实施它的。我的问题是,你如何实现这种MapReduce链接?MAP-> MAP-> reduce-> reduce->最终输出

+0

由于支撑。我实际上不知道如何接受一个问题:)我试图“投票”,但coudldn't – Ahmedov 2012-03-19 10:58:28

+1

你可以链接文件? – 2012-03-19 14:49:04

回答

0

我认为有两种方法来对付你的情况:

  1. 整合两家地图的功能代码到一个地图的任务有两个阶段。使用与地图相同的方法减少任务。

  2. 鸿沟地图地图降低,减少进度为两个作业:两个地图作为第一个Hadoop的工作将在第二张地图的任务类型来降低任务之后;在将第一个reduce任务转换为map后,两个作为第二个Hadoop工作减少。也许你可以使用Oozie来处理Hadoop工作流,如果提交一些hadoop作业取决于其他人。

+0

Oozie可能是一个选项。要检查出来。 – Ahmedov 2012-03-20 09:20:07

+0

链接已死... – ManuelSchneid3r 2015-05-19 14:50:32

1

在Hadoop的,据我所知,你不能这样做,因为现在。

一种方法可以是使用ChainMapper做MAP-> MAP->减少一部分。然后,将此作业的结果发送到另一个作业,并将映射器设置为IdentityMapper,并将缩减器设置为您拥有的第二阶段缩减器。

+0

IdentityMapper不支持新的API,对吧?它在map()函数中使用OutputCollector – Ahmedov 2012-03-20 10:14:51

0

请阅读关于TEZ。 M-> M-> R-> R->ř任何组合被有