一般在數據節點(diǎn)的log日志信息里能找到導致啟動(dòng)不起來(lái)的原因。
描述:一般在集群多次重新格式化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。當集群中的某單個(gè)節點(diǎn)出現問(wèn)題,不必重新重啟整個(gè)系統,只需重啟這個(gè)節點(diǎn),然后會(huì )自動(dòng)連接到整個(gè)集群里。
在壞死的節點(diǎn)上輸入以下命令:
bin/Hadoop-daemon.sh start DataNode
bin/Hadoop-daemon.sh start jobtracker
以上方法也可以用于動(dòng)態(tài)加入datanode,允許用戶(hù)動(dòng)態(tài)將某個(gè)節點(diǎn)加入集群中。
在hadoop集群中,HDFS分布式文件系統和mapreduce計算框架是可以獨立部署安裝的,在hadoop2中體現很明顯,如果只需要使用部分節點(diǎn)進(jìn)行計算,只需要單獨啟動(dòng)resourcemanager和需要使用的結點(diǎn)上的nodemanager即可,查找命令可以參考/hadoop2/sbin/start-yarn.sh中是如何寫(xiě)的就可以找到答案了! 在hadoop2/sbin/start-yarn.sh腳本中,寫(xiě)了啟動(dòng)resourcemanager和所有節點(diǎn)上的nodemanager,所以只需要參考該腳本文件,就能得到啟動(dòng)單個(gè)節點(diǎn)上的nodemanager的方法:
hadoop2/sbin/hadoop-daemon.sh startdatanode
hadoop2/sbin/yarn-daemon.sh nodemanager
然后執行下集群HDFS的負載均衡即可完成動(dòng)態(tài)添加節點(diǎn)了!
在hadoop1中
bin/Hadoop-daemon.sh --config ./conf start DataNode
bin/Hadoop-daemon.sh --config ./conf start tasktracker
聯(lián)系客服