我需要從所有Hadoop HDFS數據節點中回收磁盤空間。他們均被配置是這樣的:Hadoop:需要從所有數據節點中刪除單個數據目錄
<property>
<name>dfs.data.dir</name>
<value>/d01,/d02,/d03</value>
</property>
我應該如何去安全地去除所有節點/ D03文件系統和重新平衡呢?我已經嘗試瞭解除節點,刪除目錄和重新調試,但它非常緩慢,想知道是否有更好的方法?
我需要從所有Hadoop HDFS數據節點中回收磁盤空間。他們均被配置是這樣的:Hadoop:需要從所有數據節點中刪除單個數據目錄
<property>
<name>dfs.data.dir</name>
<value>/d01,/d02,/d03</value>
</property>
我應該如何去安全地去除所有節點/ D03文件系統和重新平衡呢?我已經嘗試瞭解除節點,刪除目錄和重新調試,但它非常緩慢,想知道是否有更好的方法?
該修復實際上非常簡單,並且從HDFS的用途知識開始。文件系統是容錯的分佈式複製塊集合。因此,只需從集羣中的datanode中刪除額外的目錄並重新啓動就足以導致塊的重新同步和複製發生。
監視NameNode日誌和WebUI「不足重複塊的數量」以識別該過程何時完成。
針對羣集中的所有節點單獨重複。
幾個注意事項:
確保
沒有下複製塊,通過檢查: http://<name-node>:50070
,
對面有其他的文件系統有足夠的磁盤空間,
複製級別設置爲至少2以確保t他的羣集可以容忍塊的丟失。理想情況下,這應該是三個或更高的安全。
注意:我們正在使用Cloudera和Cloudera Manager提議在僅更改一臺主機的配置後重新啓動整個羣集。您不需要重新啓動整個羣集。只需在更改的節點上重新啓動HDFS即可。 – Juve 2017-03-17 10:28:23
我自己通過對Hadoop的工作方式進行更好的(或基本的)瞭解來解決這個問題。 – parso 2014-09-25 11:28:53