2013-12-15 45 views
0

下面是序列中的步驟,並且介於兩者之間的問題。請糾正我,如果我錯了,詳細一點。瞭解地圖/減少過程。有幾個問題

  • 客戶端/用戶將請求提交給JobTracker。 JobTracker是一個駐留在名稱節點中的軟件。
  • JobTracker將作業分成小的子問題並提供給TaskTracker。 TaskTracker是駐留在數據節點中的軟件。 TaskTracker可能會再次執行,導致多級樹形結構。
  • 映射步驟僅在TaskTracker中發生,不在JobTracker中?
  • 洗牌和排序發生。此步驟是在Mapper步驟還是Reducer步驟中進行的?
  • 洗牌和排序的輸出被送入Reducer步驟?
  • Reducer步驟僅在JobTracker中發生而不在TaskTracker中?
  • 減速步驟即JobTracker不是TaskTracker組合數據並將輸出提供給客戶/用戶。
  • 只有1個減速機用於組合結果?

感謝

+0

這個樣式問題真的很難在stackoverflow上回答。此外,幾乎每一行都是錯誤的......所以不確定你從哪裏得出這些假設。 –

回答

1

客戶端/用戶將請求提交給JobTracker。 JobTracker是一個駐留在名稱節點中的軟件。

JobTracker是一個守護進程,它可以駐留在名稱節點以外的其他機器上。

JobTracker將作業分成小的子問題並提供給TaskTracker。

JobTracker將MapReduce任務分配給羣集中的特定節點,理想情況下具有該數據的節點或至少位於同一個機架中。

TaskTracker是駐留在數據節點中的軟件。 TaskTracker可能會再次執行,導致多級樹形結構。

通常是的。 TaskTracker可以獨立運行,但它確實需要一個datanode來處理。

映射步驟只發生在JobTracker而不是JobTracker中?

地圖任務由TaskTracker共同

洗牌推出和排序發生。此步驟是在Mapper步驟還是Reducer步驟中進行的?

亂序和排序過程實際上是在映射階段和縮小階段之間。但它們只與縮小階段有關。沒有減少階段洗牌和排序不會發生。所以,我們可以說 - Reducer有三個主要階段:洗牌,分類和減少。

洗牌和排序的輸出被送入Reducer步驟?

在洗牌和排序中,框架通過HTTP獲取所有映射器輸出的相關分區。 Reducer的輸入是映射器的排序輸出。

減速器步驟只發生在JobTracker而不發生在TaskTracker中嗎?

減少任務由TaskTracker啓動。

減速器步驟即JobTracker而非TaskTracker組合數據並將輸出提供給客戶端/用戶。

減少任務是應該在幾個節點並行運行並將結果發送到HDFS。如果你喜歡,你可以讀取來自不同Reducer的最終數據集的輸出數據,並將它們結合到MapReduce驅動程序中。

只有1個縮小器用於組合結果?

這取決於你想要做什麼。但是,如果您需要在單個reduce任務中處理大量數據,那麼由於缺乏並行性,執行單個reduce任務肯定會降低性能。

0

你的確需要這樣的:在這個題目Hadoop: The Definitive Guide, 3rd Edition.最有用的指導。

一些注意事項:

  1. Hadoop的主要是2個事物組合:HDFS爲 「存儲」 和MapReduce框架作爲 「CPU」。
  2. NameNode與HDFS相關,JobTracker與MapReduce相關。 MapReduce使用HDFS服務,但JobTracker和NameNode是完全不同的服務,不必位於同一節點上。
  3. DataNode是HDFS實體,但TaskTracker是MapReduce的組件,它們是獨立的。實際上,它們通常位於同一個節點上,但它不是固定的。
  4. 作業步驟本身由TaskTracker執行。 JobTracker就像調度程序。這與Map和Reduce步驟都有關係。不要忘記Combiner。
  5. 不,您可以使用多於1個Reducer,並且您可以控制此功能,並且每個映射器最多可以使用1個組合器,因爲組合器會在映射器之後立即執行。
  6. 隨機過程與映射器(或組合器)輸出有關,因此邏輯上它更接近映射器而不是縮減器,但實際上不應該依賴於此。你的自由是採取下一個記錄和過程。另外,如果配置了0個reducer,則不會有像shuffle這樣的事情。
  7. 不要試圖用這樣的Q &取代真正的知識一個網站的建議。不起作用:-)。

希望得到這個幫助。