2013-02-08 52 views
0

實際上我對hdfs map-reduce如何在完全分佈式模式下工作有點困惑。hdfs map-reduce如何在完全分佈式模式下工作

假設我正在運行一個字數統計程序。我只給出'hdfs-site'&'核心站點'的路徑。

那麼事情是如何實際進行的?

這個程序是否分佈在每個節點上還是什麼?

+0

-1建議閱讀一些文章/書籍,並回到與更具體問題的論壇。 – 2013-02-08 15:04:11

回答

1

是的,你的程序是分佈式的。但是,說它分佈到每個節點是錯誤的。更重要的是,hadoop檢查你正在使用的數據,將這些數據分成更小的部分(在配置的一些約束下),然後將你的代碼移動到hdfs中的這些部分的節點(我假設你有一個datanode和一個運行在節點上的tasktracker)。首先映射部分在這些節點上執行,從而產生一些數據。這些數據存儲在節點上,並且在映射完成後,作業的第二部分將在節點 - 縮減階段開始。

reducer在一些節點上啓動(再次,您可以配置其中的多少個節點)並從映射器獲取數據,將它們聚合並將輸出發送到hdfs。

+0

也是在hdfs節點執行map reduce(一旦數據已被數據節點減少) – 2013-02-08 14:32:37

+0

是的,這裏的「技巧」是找出數據在哪裏並將計算移動到該數據。這主要是爲製圖人員完成的,但如果可能的話,減速器也可以從中受益。由於減速器通常會得到「分區」數據(所有減速器都會得到相同的「字數」),所以這樣做有點困難,並且很可能導致將數據通過網絡移動到某個節點。 – cybye 2013-02-08 15:40:48

相關問題