2013-10-08 45 views
0

我有一個場景,我需要運行兩個Hadoop作業計算n-gram兩個不同語料庫的統計信息,並確保他們將每個n-gram(以及它的分數)寫入同一個reducer(以便將來我可以在本地讀取數據並比較和比較兩個語料庫中的兩個分數)。對於例如如果作業J1在機器M上執行其中一個減速器並在本地寫入n-gram N,我希望作業J2也將n-gram N寫入同一臺機器M將兩個不同Hadoop作業的輸出寫入同一組reducer

我知道如何計算語料庫的n-gram統計數據(僅供參考,可參考Google的this發佈)。我還定義了我的自定義分區(基於n-gram中的前兩個單詞進行散列)。現在如何確保同一個程序的兩個不同運行(在兩個不同的語料庫上)最終將相應的輸出寫入同一個reducer?

回答

0

結賬MultipleInputs。通過指出兩個兄弟映射器對兄弟數據集,您可以避免在減少之前在組合集上運行一個ID映射。

相關問題