hadoop起動後沒有datanode的問題

查看日誌後發現:

java.io.IOException: Incompatible clusterIDs in /home/storm/hadoop/dfs/data: namenode clusterID = CID-bee17bb7-308b-4e4d-b059-3c73519a9d0e; datanode clusterID = CID-7fca37f0-a600-4e89-a012-aec2a3499151
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:760)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:293)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:409)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:388)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:556)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1566)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1527)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:327)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:266)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:746)
    at java.lang.Thread.run(Thread.java:745)
2017-10-06 12:01:35,752 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid 7044cfaa-9868-44d8-a50d-15acd0a7fff1) service to h1/172.18.18.189:9000. Exiting. 
java.io.IOException: All specified directories are failed to load.
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:557)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1566)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1527)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:327)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:266)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:746)
    at java.lang.Thread.run(Thread.java:745)
2017-10-06 12:01:35,752 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid 7044cfaa-9868-44d8-a50d-15acd0a7fff1) service to h1/172.18.18.189:9000
2017-10-06 12:01:35,754 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid 7044cfaa-9868-44d8-a50d-15acd0a7fff1)
2017-10-06 12:01:37,754 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2017-10-06 12:01:37,757 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
2017-10-06 12:01:37,760 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at h3/172.18.18.173
************************************************************/

從日誌上看,datanode的clusterID 和 namenode的clusterID 不匹配。

解決辦法一:

根據日誌中的路徑,cd /home/storm/hadoop/tmp/dfs,能看到 data和name兩個文件夾,

將name/current下的VERSION中的clusterID複製到data/current下的VERSION中,覆蓋掉原來的clusterID。

讓兩個保持一致,然後重啓,啓動後執行jps,查看進程:

20131 SecondaryNameNode
20449 NodeManager
19776 NameNode
21123 Jps
19918 DataNode
20305 ResourceManager

解決辦法二:

直接刪除掉dfs文件夾中name和data文件夾裏的所有內容,重啓。

出現該問題的原因

在第一次格式化dfs後,啓動並使用了hadoop,後來又重新執行了格式化命令(hdfs namenode -format),這時namenode的clusterID會重新生成,而datanode的clusterID 保持不變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章