轉自:http://book.51cto.com/art/201110/298602.htm
如果大家在安裝的時候遇到問題,或者按步驟安裝完後卻不能運行Hadoop,那麼建議仔細查看日誌信息,Hadoop記錄了詳盡的日誌信息,日誌文件保存在logs文件夾內。
無論是啓動,還是以後會經常用到的MapReduce中的每一個job,以及HDFS等相關信息,Hadoop均存有日誌文件以供分析。
例如:
NameNode和DataNode的namespaceID不一致,這個錯誤是很多人在安裝時會遇到的,日誌信息爲:
java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:
NameNode namespaceID = 1307672299; DataNode namespaceID = 389959598
若HDFS一直沒有啓動,讀者可以查詢日誌,並通過日誌進行分析,以上提示信息顯示了NameNode和DataNode的namespaceID不一致。
這個問題一般是由於兩次或兩次以上的格式化NameNode造成的,有兩種方法可以解決,第一種方法是刪除DataNode的所有資料(及將集羣中每個datanode的/hdfs/data/current中的VERSION刪掉,然後執行hadoop namenode -format重啓集羣,錯誤消失。<推薦>);第二種方法是修改每個DataNode的namespaceID(位於/hdfs/data/current/VERSION文件中)<優先>或修改NameNode的namespaceID(位於/hdfs/name/current/VERSION文件中),使其一致。
下面這兩種方法在實際應用中也可能會用到。
1)重啓壞掉的DataNode或JobTracker。當Hadoop集羣的某單個節點出現問題時,一般不必重啓整個系統,只須重啓這個節點,它會自動連入整個集羣。
在壞死的節點上輸入如下命令即可:
bin/Hadoop-daemon.sh start DataNode
bin/Hadoop-daemon.sh start jobtracker
2) 動態加入DataNode或TaskTracker。這個命令允許用戶動態將某個節點加入集羣中。
bin/Hadoop-daemon.sh --config ./conf start DataNode
bin/Hadoop-daemon.sh --config ./conf start tasktracker