datanode啟動不起來的各種原因


一般在數據節點的log日志信息里能找到導致啟動不起來的原因。

1.Namenode和Datanode的NamenodeID不一致

    描述:一般在集群多次重新格式化HDFS之后,或者剛安裝時會碰到。日志信息如下:

  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文件中),使其一致。

2.Datanode突然不堪重負宕掉

  只需重啟壞掉的Datanode或者JobTracker。當集群中的某單個節點出現問題,不必重新重啟整個系統,只需重啟這個節點,然后會自動連接到整個集群里。

  在壞死的節點上輸入以下命令:

    bin/Hadoop-daemon.sh start DataNode

    bin/Hadoop-daemon.sh start jobtracker

以上方法也可以用於動態加入datanode,允許用戶動態將某個節點加入集群中。

    在hadoop集群中,HDFS分布式文件系統和mapreduce計算框架是可以獨立部署安裝的,在hadoop2中體現很明顯,如果只需要使用部分節點進行計算,只需要單獨啟動resourcemanager和需要使用的結點上的nodemanager即可,查找命令可以參考/hadoop2/sbin/start-yarn.sh中是如何寫的就可以找到答案了! 在hadoop2/sbin/start-yarn.sh腳本中,寫了啟動resourcemanager和所有節點上的nodemanager,所以只需要參考該腳本文件,就能得到啟動單個節點上的nodemanager的方法:

    hadoop2/sbin/hadoop-daemon.sh startdatanode

    hadoop2/sbin/yarn-daemon.sh nodemanager

然后執行下集群HDFS的負載均衡即可完成動態添加節點了!

  在hadoop1中

    bin/Hadoop-daemon.sh --config ./conf start DataNode

    bin/Hadoop-daemon.sh --config ./conf start tasktracker


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM