问题:启动datanode失败:
4998 2024-04-23 03:23:09,007 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid 308a97a6-6364 -41e0-b938-ce38457061a6) service to node82/192.168.84.82:8020. Exiting.
4999 java.io.IOException: All specified directories have failed to load.
5000 at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:565)
5001 at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1659)
5002 at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1620)
5003 at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:388)
5004 at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:282)
5005 at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:826)
5006 at java.lang.Thread.run(Thread.java:748)
原因:部署新大数据集群时执行了多次namenode format操作,导致clusterID 变化了,而我在第一次format操作后启动了一次datanode,所以启动datanode后/data/hadoop/hdfs/datanode/current/VERSION 里记录了第一次的clusterID,第二次format后clusterID发生了变化,导致datanode启动不了,
解决方法:
将/data/hadoop/hdfs/datanode/current/VERSION 里的clusterID改成/data/hadoop/hdfs/namenode/current/VERSION里的clusterID,集群里的每一台datanode都要改