2017-04-09 58 views
0

我在權威指南(HDFS Concepts - blocks)中遇到以下段落,並且無法理解。hadoop - 權威指南 - 爲什麼hdfs中的塊如此之大

MapReduce中的地圖任務通常一次只能在一個塊上運行,所以如果任務太少(比羣集中的節點少),那麼您的作業運行速度會比其他任務慢。

我想知道當任務數量少於羣集中節點總數時,作業速度會如何變慢。假設在集羣中有1000個節點和3個任務(通過每個塊發送給單個任務的節點來完成塊的任務),獲得結果所需的時間總是少於具有1000節點和1000個任務是否正確?

我無法相信在權威指南中給出的段落。

回答

1

你從書中引用的段落基本上說「儘可能多地利用節點」。如果您有1000個節點並且只有3個塊或任務,則只有3個節點在您的任務上運行,而其他997個節點對您的任務不起任何作用。如果您有1000個節點和1000個任務,並且這1000個節點中的每一個節點都有一部分數據,則所有1000個節點都將用於您的任務。您還可以利用數據本地化,因爲每個節點都將首先處理本地數據。

+0

謝謝Celik,我瞭解節點的使用情況。但是,這如何與工作緩慢有關呢? –

+0

作業由多個任務組成。每項工作的任務越多,使用更多節點的機會就越大。較小的任務粒度將爲您完成任務提供更好的時間平衡。主要思想是在羣集中擁有最少空閒節點和最多運行節點。 – celik

相關問題