1、重新格式化意味着集群的數據會被全部刪除,格式化前需考慮數據備份或轉移問題;
2、先刪除主節點(即namenode節點),Hadoop的臨時存儲目錄tmp、namenode存儲永久性元數據目錄dfs/name、Hadoop系統日志文件目錄log 中的內容 (注意是刪除目錄下的內容不是目錄);
3、刪除所有數據節點(即datanode節點) ,Hadoop的臨時存儲目錄tmp、namenode存儲永久性元數據目錄dfs/name、Hadoop系統日志文件目錄log 中的內容;
4、格式化一個新的分布式文件系統:
$ hadoop namenode -format
注意
(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啟動失敗。