天天看點

《Hadoop MapReduce實戰手冊》一2.4 DataNode下架

本節書摘來異步社群《hadoop mapreduce實戰手冊》一書中的第2章,第2.4節,作者: 【美】srinath perera , thilina gunarathne 譯者: 楊卓荦 責編: 楊海玲,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

hadoop mapreduce實戰手冊

有些時候你可能想讓一個hdfs叢集的一個或多個資料節點下架。本節展示了如何優雅地讓使用中的datanode下架而不會導緻資料丢失,而且無需重新啟動叢集。

操作步驟

下列步驟顯示了如何讓資料節點優雅地下架。

如果叢集沒有排除檔案配置,則需要向叢集中添加一個排除檔案(exclude file)。在namenode上建立一個空檔案,并且通過添加以下屬性從conf/hdfs-site.xml檔案指向它。

将要下架的節點的主機名添加到exclude檔案中。

運作下列指令以重新加載namenode的配置。這将啟動下架過程。下架過程可能需要相當一段時間,因為它需要確定資料塊的複制操作沒有影響叢集的其他任務。

下架進度顯示在hdfs中使用者界面下的decommissioning nodes頁面。也可以使用下面的指令監控下架進度。不要關閉這些下架中節點,直到下架完成。

當想要把這些節點重新添加回叢集時,可以從exclude檔案中删除節點,執行bin/hadoop

下架過程可以通過從exclude檔案中删除該節點的名稱、然後執行bin/hadoopd dfsadmin

工作原理

在節點下架時,hdfs會将該節點中的塊複制到叢集中的其他節點。下架可能是一個非常緩慢的過程,因為hdfs故意使它緩慢地運作,以避免叢集過載。如果直接關閉節點,而不采用下架,可能會導緻資料丢失。

下架完成後,将不再允許exclude檔案所提及的節點與namenode通信。

繼續閱讀