<name>dfs.name.dir</name>
<value>/pvdata/hadoopdata/name/,/opt/hadoopdata/name/</value>
</property>
<name>dfs.data.dir</name>
<value>/dev/sda3/hadoopdata/,/dev/sda1/hadoopdata/</value>
</property>
如何處理多次格式化文件系統後,datanode,namenode無法啓動的問題
一、問題描述
當我多次格式化文件系統時,如
root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format
會出現datanode無法啓動,查看日誌,發現錯誤爲:
2012-04-20 20:39:46,501 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/gqy/hadoop/data: namenode namespaceID = 155319143; datanode namespaceID = 1036135033
二、問題產生原因
當我們執行文件系統格式化時,會在namenode數據文件夾(即配置文件中dfs.name.dir在本地系統的路徑)中保存一個current/VERSION文件,記錄namespaceID,標識了所格式化的 namenode的版本。如果我們頻繁的格式化namenode,那麼datanode中保存(即配置文件中dfs.data.dir在本地系統的路徑)的current/VERSION文件只是你第一次格式化時保存的namenode的ID,因此就會造成datanode與namenode之間的id不一致。
三、解決辦法
把配置文件中dfs.datadir在本地系統的路徑下的current/VERSION中的namespaceID改爲與namenode一樣