1. 程式人生 > >Hadoop namenode重新格式化需注意問題

Hadoop namenode重新格式化需注意問題

1、重新格式化意味著叢集的資料會被全部刪除,格式化前需考慮資料備份或轉移問題; 
2、先刪除主節點(即namenode節點),Hadoop的臨時儲存目錄tmp、namenode儲存永久性元資料目錄dfs/name、Hadoop系統日誌檔案目錄log 中的內容 (注意是刪除目錄下的內容不是目錄); 
3、刪除所有資料節點(即datanode節點) ,Hadoop的臨時儲存目錄tmp、namenode儲存永久性元資料目錄dfs/name、Hadoop系統日誌檔案目錄log 中的內容; 
4、格式化一個新的分散式檔案系統:

$ hadoop namenode -format  
  • 1
  • 1

注意

(1)Hadoop的臨時儲存目錄tmp(即core-site.xml配置檔案中的hadoop.tmp.dir屬性,預設值是/tmp/hadoop-${user.name}

),如果沒有配置hadoop.tmp.dir屬性,那麼hadoop格式化時將會在/tmp目錄下建立一個目錄,例如在cloud使用者下安裝配置hadoop,那麼Hadoop的臨時儲存目錄就位於/tmp/hadoop-cloud目錄下 
(2)Hadoop的namenode元資料目錄(即hdfs-site.xml配置檔案中的dfs.namenode.name.dir屬性,預設值是${hadoop.tmp.dir}/dfs/name),同樣如果沒有配置該屬性,那麼hadoop在格式化時將自行建立。必須注意的是在格式化前必須清楚所有子節點(即DataNode節點)dfs/name下的內容,否則在啟動hadoop時子節點的守護程序會啟動失敗。這是由於,每一次format主節點namenode,dfs/name/current
目錄下的VERSION檔案會產生新的clusterID、namespaceID。但是如果子節點的dfs/name/current仍存在,hadoop格式化時就不會重建該目錄,因此形成子節點的clusterID、namespaceID與主節點(即namenode節點)的clusterID、namespaceID不一致。最終導致hadoop啟動失敗。