2012-03-17 33 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->ř任何組合被有