一般在數(shù)據(jù)節(jié)點(diǎn)的log日志信息里能找到導(dǎo)致啟動(dòng)不起來的原因。
描述:一般在集群多次重新格式化HDFS之后,或者剛安裝時(shí)會(huì)碰到。日志信息如下:
java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:
NameNode namespaceID = 1307672299; DataNode namespaceID = 389959598
解決辦法:最直接有效的辦法就是修改Datanode上的namenodeID(位于/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/dfs/name/current/VERSION文件中),使其一致。
只需重啟壞掉的Datanode或者JobTracker。當(dāng)集群中的某單個(gè)節(jié)點(diǎn)出現(xiàn)問題,不必重新重啟整個(gè)系統(tǒng),只需重啟這個(gè)節(jié)點(diǎn),然后會(huì)自動(dòng)連接到整個(gè)集群里。
在壞死的節(jié)點(diǎn)上輸入以下命令:
bin/Hadoop-daemon.sh start DataNode
bin/Hadoop-daemon.sh start jobtracker
以上方法也可以用于動(dòng)態(tài)加入datanode,允許用戶動(dòng)態(tài)將某個(gè)節(jié)點(diǎn)加入集群中。
在hadoop集群中,HDFS分布式文件系統(tǒng)和mapreduce計(jì)算框架是可以獨(dú)立部署安裝的,在hadoop2中體現(xiàn)很明顯,如果只需要使用部分節(jié)點(diǎn)進(jìn)行計(jì)算,只需要單獨(dú)啟動(dòng)resourcemanager和需要使用的結(jié)點(diǎn)上的nodemanager即可,查找命令可以參考/hadoop2/sbin/start-yarn.sh中是如何寫的就可以找到答案了! 在hadoop2/sbin/start-yarn.sh腳本中,寫了啟動(dòng)resourcemanager和所有節(jié)點(diǎn)上的nodemanager,所以只需要參考該腳本文件,就能得到啟動(dòng)單個(gè)節(jié)點(diǎn)上的nodemanager的方法:
hadoop2/sbin/hadoop-daemon.sh startdatanode
hadoop2/sbin/yarn-daemon.sh nodemanager
然后執(zhí)行下集群HDFS的負(fù)載均衡即可完成動(dòng)態(tài)添加節(jié)點(diǎn)了!
在hadoop1中
bin/Hadoop-daemon.sh --config ./conf start DataNode
bin/Hadoop-daemon.sh --config ./conf start tasktracker
聯(lián)系客服