2012-11-21 22 views
0

我對如何在hadoop reducer中工作conext.write感到困惑。 爲什麼在hadoop reducer中沒有鎖定問題(如果有多於1個reducer),如果所有的都在寫入HDFS中的同一個文件?爲什麼在做hadoop reducer中的context.write時沒有鎖定問題

通常,如果我們要在hadoop映射器/縮減器中自己寫入同一個文件,我們會收到鎖定錯誤,我們無法同時寫入同一個文件。

回答

1

如果您的地圖縮減程序在多節點羣集上運行,那麼每個節點上都將運行獨特的Map和Reduce程序。

Reduce in Map Reduce不直接寫入文件本身。它將這個任務委託給負責數據下沉的OutputFormat。它可能是文件,數據庫表或任何其他位置。 FileOutputFormat將沉入Hadoop分佈式文件系統(HDFS)中的某個位置。 DBOutputFormat將沉入數據庫表(讀取此post)。

對於您的文件鎖定問題,請在Yahoo Developer Network查看此post

+1

謝謝指出。我想我錯過了每個reducer寫入一個名爲part-nnnnn的單獨文件的要點 – figaro

相關問題