我有一個問題,需要我在迭代過程中過濾大量數據,數十TB。由於尺寸的原因,我想在2個連續的地圖階段進行計算,以便數據不需要通過網絡重新傳輸。Hadoop:在同步數據或ChainMap上運行兩個M/R作業,同步障礙
所以在算法的步驟是:1)分析所有數據,並在相同的數據決定,2)重新運行,並從1
以此爲基礎進行決策的過濾過程中,我推測有兩種方式解決這個問題,但每個似乎都有很大的問題。
1)解決方案,ChainMapper。問題:第一個映射器需要在第二個映射器完成之前完成。
2)解決方案,兩份工作。問題:由於作業之間的數據被刪除,數據在網絡中被重新傳輸。
我確定有些東西我錯過了,但我真的可以使用一些幫助!
感謝
如果您必須擁有所有數據才能做出定義第二步的決定,那麼爲什麼第一個階段必須首先完成?似乎需要。否則這不是重新連線,這是你的問題的關鍵。 – 2013-04-25 23:25:31
因爲決定是基於查看所有關鍵/值。所以直到我看到所有的關鍵/值對,我都不能說這個決定會是什麼。所以我在想Map - >根據mappers - > Map2做出決定。 – greedybuddha 2013-04-25 23:29:43
對不起,我誤解了你的回覆。是的,我想第一張地圖要先完成。我只是不知道如何做到這一點,而不需要兩次重新發送網絡上的所有數據。 – greedybuddha 2013-04-25 23:33:49