hadoop datanode启动失败
問題導(dǎo)讀:
1、Hadoop出現(xiàn)問題時,該如何入手查看問題?
2、datanode無法啟動,我們該怎么解決?
3、如何動態(tài)加入DataNode或TaskTracker?
一、問題描述
當(dāng)我多次格式化文件系統(tǒng)時,如
?
復(fù)制代碼
會出現(xiàn)datanode無法啟動,查看日志,發(fā)現(xiàn)錯誤為:
?
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?
?
?
二、問題產(chǎn)生原因
當(dāng)我們執(zhí)行文件系統(tǒng)格式化時,會在namenode數(shù)據(jù)文件夾(即配置文件中dfs.name.dir在本地系統(tǒng)的路徑)中保存一個current/VERSION文件,記錄namespaceID,標(biāo)識了所格式化的 namenode的版本。如果我們頻繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系統(tǒng)的路徑)的current/VERSION文件只是你第一次格式化時保存的namenode的ID,因此就會造成datanode與namenode之間的id不一致。
三、解決辦法
把配置文件中dfs.data.dir在本地系統(tǒng)的路徑下的current/VERSION中的namespaceID改為與namenode一樣。
如果大家在安裝的時候遇到問題,或者按步驟安裝完后卻不能運行Hadoop,那么建議仔細(xì)查看日志信息,Hadoop記錄了詳盡的日志信息,日志文件保存在logs文件夾內(nèi)。
無論是啟動,還是以后會經(jīng)常用到的MapReduce中的每一個job,以及HDFS等相關(guān)信息,Hadoop均存有日志文件以供分析。
例如:
NameNode和DataNode的namespaceID不一致,這個錯誤是很多人在安裝時會遇到的,日志信息為:
?
若HDFS一直沒有啟動,讀者可以查詢?nèi)罩?#xff0c;并通過日志進(jìn)行分析,以上提示信息顯示了NameNode和DataNode的namespaceID不一致。
這個問題一般是由于兩次或兩次以上的格式化NameNode造成的,有兩種方法可以解決,第一種方法是刪除DataNode的所有資料(及將集群中每個datanode的/hdfs/data/current中的VERSION刪掉,然后執(zhí)行hadoop namenode -format重啟集群,錯誤消失。<推薦>);第二種方法是修改每個DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<優(yōu)先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。
下面這兩種方法在實際應(yīng)用中也可能會用到。
1)重啟壞掉的DataNode或JobTracker。當(dāng)Hadoop集群的某單個節(jié)點出現(xiàn)問題時,一般不必重啟整個系統(tǒng),只須重啟這個節(jié)點,它會自動連入整個集群。
在壞死的節(jié)點上輸入如下命令即可:
2) 動態(tài)加入DataNode或TaskTracker。這個命令允許用戶動態(tài)將某個節(jié)點加入集群中。
?
?
總結(jié)
以上是生活随笔為你收集整理的hadoop datanode启动失败的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPRS模块AT呼叫控制命令
- 下一篇: CentOS6.5下用yum安装 git