2014-09-22 47 views
4

我需要從所有Hadoop HDFS數據節點中回收磁盤空間。他們均被配置是這樣的:Hadoop:需要從所有數據節點中刪除單個數據目錄

<property> 
    <name>dfs.data.dir</name> 
    <value>/d01,/d02,/d03</value> 
</property> 

我應該如何去安全地去除所有節點/ D03文件系統和重新平衡呢?我已經嘗試瞭解除節點,刪除目錄和重新調試,但它非常緩慢,想知道是否有更好的方法?

+0

我自己通過對Hadoop的工作方式進行更好的(或基本的)瞭解來解決這個問題。 – parso 2014-09-25 11:28:53

回答

5

該修復實際上非常簡單,並且從HDFS的用途知識開始。文件系統是容錯的分佈式複製塊集合。因此,只需從集羣中的datanode中刪除額外的目錄並重新啓動就足以導致塊的重新同步和複製發生。

監視NameNode日誌和WebUI「不足重複塊的數量」以識別該過程何時完成。

針對羣集中的所有節點單獨重複。

幾個注意事項:

確保

  • 沒有下複製塊,通過檢查: http://<name-node>:50070

  • 對面有其他的文件系統有足夠的磁盤空間,

  • 複製級別設置爲至少2以確保t他的羣集可以容忍塊的丟失。理想情況下,這應該是三個或更高的安全。

+0

注意:我們正在使用Cloudera和Cloudera Manager提議在僅更改一臺主機的配置後重新啓動整個羣集。您不需要重新啓動整個羣集。只需在更改的節點上重新啓動HDFS即可。 – Juve 2017-03-17 10:28:23

相關問題