2012-09-20 32 views
1

如何更改數據節點的數量,即禁用並啓用某些數據節點以測試可伸縮性?爲了更清楚起見,我有4個數據節點,我想用1,2,3和4個數據節點一個接一個地測試性能。是否有可能只是更新namenode中的奴隸文件?更改Hadoop中數據節點的數量

回答

2

的正確方法暫時停用一個節點:

  1. 創建「排除文件」。這列出了您希望刪除的主機,每行一個。
  2. dfs.hosts.excludemapred.hosts.exclude設置爲該文件的位置。
  3. 更新namenode和jobtracker通過做hadoop dfsadmin -refreshNodeshadoop mradmin -refreshNodes
  4. 這將開始中斷過程。所有用於在這些節點上覆制的數據都將被複制到其他節點上。您可以通過Web UI檢查進度。

注意,這些節點將不盡快你做hadoop mradmin -refreshNodes但他們仍然會保存數據,所以你可能會吃否則你不會,如果你運行的東西一些網絡延遲退役之前是用於MR工作完成。所以爲了完全真實的測試,你應該等到它完成。

要添加節點,只需將它們從排除文件中刪除並再次執行-refreshNodes命令。

+0

感謝您的詳細回答 – Ahmedov

+0

現在,我得到「不足複製塊」。重新啓動hadoop,但仍有32個塊被低複製。 – Ahmedov

+0

我不是很積極,爲什麼會發生 - 退役已完成?您也可以運行'hadoop balancer'來重新平衡所有節點上的數據,我認爲它也可以修復重複數據塊。 –

0

從屬文件僅用於像start-dfs這樣的腳本,如果不使用這些腳本,可以忽略它。因此,您可以將其保留爲空,然後添加/刪除數據節點,然後按開啓/關閉進行羣集。