2011-10-10 78 views
1

我有一個有50個節點的集羣,每個節點有8個核心用於計算。 如果我有工作,我計劃施加200減少,什麼是更好的計算資源分配策略的更好的表現?Hadoop節點和核心分配策略

我的意思是分配50個節點和4個核心在他們每個人或分配25個節點和8核心爲他們每個更好?在哪種情況下哪個更好?

回答

1

要回答你的問題,這取決於一些事情。 50個節點都將是總體較好,在我看來:

  • 如果你正在閱讀大量的數據從磁盤,50個節點會更好,因爲你會並行加載從磁盤2倍。
  • 如果您正在計算和處理大量數據,50個節點將會更好,因爲核心數量不會以1:1的比例進行處理(即,2倍的核心數量不會超過2倍速度。同時,更多的處理器的規模接近1:1)。
  • Hadoop必須在這些節點上運行諸如TaskTracker和DataNode進程之類的東西,以及OS層的東西。那些「佔用」核心也是如此。

但是,如果您主要關注的是網絡,這裏是具有50個節點的幾個缺點:

  • 可能性較大,50個節點將是在兩個機架。他們是在一個扁平的網絡上,還是你必須處理它的機架通信?您必須相應地設置Hadoop;
  • 支持50個節點的網絡交換機將比支持25個節點的網絡交換機更昂貴;
  • 映射和reduce之間的網絡混洗將導致交換機爲您的50個節點羣集提供更多的工作量,但大約相同數量的數據將通過網絡傳遞。

即使有了這些網絡問題,我想你會發現50個節點更好,只是因爲節點的價值不僅僅是核心數量。你必須主要考慮你有多少個磁盤。

1

很難說,通常它總是「越高越好」。 更多的機器會更好地防止故障。

通常Hadoop可以使用商品硬件,你可以選擇50個4核心的服務器。

但是我會選擇8核心,如果他們會有更好的硬件,例如。更高的CPU頻率,DDR3 RAM或10k rpm磁盤。