Hadoop參數:dfs.name.dir 與 dfs.data.dir

dfs.name.dir
Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
這個參數用於確定將HDFS文件系統的元信息保存在什麼目錄下。
如果這個參數設置爲多個目錄,那麼這些目錄下都保存着元信息的多個備份。
如:
<property>
    <name>dfs.name.dir</name>
    <value>/pvdata/hadoopdata/name/,/opt/hadoopdata/name/</value>
</property>


dfs.data.dir 
Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.
這個參數用於確定將HDFS文件系統的數據保存在什麼目錄下。
我們可以將這個參數設置爲多個分區上目錄,即可將HDFS建立在不同分區上。
如:
<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一樣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章