HDFS启动发现DataNode启动失败报错:java.io.IOException: Incompatible clusterIDs

报错详情:
HDFS启动后有个别DataNode很快就挂掉,经查看日志文件,有如下报错:

2020-07-15 09:55:09,406 INFO  common.Storage (Storage.java:tryLock(776)) - Lock on /opt/hadoop/hadoop/hdfs/data/in_use.lock acquired by nodename 20657@node4
2020-07-15 09:55:09,408 WARN  common.Storage (DataStorage.java:loadDataStorage(449)) - Failed to add storage directory [DISK]file:/opt/hadoop/hadoop/hdfs/data/
java.io.IOException: Incompatible clusterIDs in /opt/hadoop/hadoop/hdfs/data: namenode clusterID = CID-64742c14-5c74-439c-a95d-e82e8a332914; datanode clusterID = CID-35f03ca6-ee0c-4bd4-babd-c77dfccfab27
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:801)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:322)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:438)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:417)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:595)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1543)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1504)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:319)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:272)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:768)
    at java.lang.Thread.run(Thread.java:748)
2020-07-15 09:55:09,411 ERROR datanode.DataNode (BPServiceActor.java:run(780)) - Initialization failed for Block pool  (Datanode Uuid 2817ee6c-67af-4f2b-a62c-3ebaf8cc260f) service to node1/25.211.142.57:8020. Exiting. 
java.io.IOException: All specified directories are failed to load.
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:596)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1543)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1504)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:319)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:272)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:768)
    at java.lang.Thread.run(Thread.java:748)
2020-07-15 09:55:09,411 WARN  datanode.DataNode (BPServiceActor.java:run(804)) - Ending block pool service for: Block pool  (Datanode Uuid 2817ee6c-67af-4f2b-a62c-3ebaf8cc260f) service to node1/25.211.142.57:8020
2020-07-15 09:55:09,514 INFO  datanode.DataNode (BlockPoolManager.java:remove(103)) - Removed Block pool  (Datanode Uuid 2817ee6c-67af-4f2b-a62c-3ebaf8cc260f)
2020-07-15 09:55:11,515 WARN  datanode.DataNode (DataNode.java:secureMain(2699)) - Exiting Datanode
2020-07-15 09:55:11,517 INFO  util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 0

报错原因:
异常的原因在于namenode 的clusterID 和datanode clusterID 不一致导致的。其中:
通过hdfs-site.xml中配置项:dfs.namenode.name.dir 指定的目录下的current目录中的VERSION文件查看namenode 的clusterID;
通过hdfs-site.xml中配置项:dfs.datanode.data.dir 指定的目录下的current目录中的VERSION文件查看datanode 的clusterID。

解决方案:
修改问题DataNode节点中的上述VERSION文件中的clusterID与NameNode中一致,重启服务即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值