复现背景:
HDFS搭建完毕后,已经格式化一次,后期清除数据,重新格式化,格式后没有重启服务器!!!没有重启服务器!!!没有重启服务器!!!
报错信息:
java.io.IOException: Incompatible clusterIDs in /xxx/xxx/hadoop/dfs/data: namenode clusterID = CID-e4610d75-9584-45d4-990d-1669d52bd677; datanode clusterID = CID-135a156a-6ad8-4450-a5ea-5f5587a97d90
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:746)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:296)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:409)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:389)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:561)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1766)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1702)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:392)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:295)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:853)
at java.lang.Thread.run(Thread.java:748)
结果:
将本地文件放到HDFS上时,会显示上传失败等信息
原因:
格式化后,DataNode配置文件和NameNode配置文件的clusterID不一致,导致上传文件失败
解决方式:
解决方式有两种:方式一:重新格式化,方式二:手动为每个DataNode配置和NameNode相同的clusterID
方式一:仅适用于平时学习环境,工作中的测试或者生产环境,格式化后就有点头铁了(本次方式一怎么操作也带上,操作时注意下)
方式一:
格式化HDFS的命令如下:
hadoop namenode -format
# 或
hdfs namenode -format
方式二:
第一步:先找到NameNode和DataNode服务器current目录下的VERSION文件
find / -name VERSION
会看到以下文件:
/xxx/xxx/hadoop/dfs/name/current/VERSION
/xxx/xxx/hadoop/dfs/data/current/VERSION
/xxx/xxx/hadoop/dfs/data/current/BP-1570719467-192.168.xx.xxx-1635012068727/current/VERSION
分别打开这几个文件,然后将DataNode的各属性修改的和NameNode属性保持一致,然后再重启下HDFS试试
以下是错误的数据展示,需要将DataNode的clusterID内容和NameNode的保持一致;
注意:layoutVersion和cTime属性不一样是正常的,这个不用修改
NameNode文件内容:
namespaceID=352346759
clusterID=CID-e4610d75-9584-45d4-990d-1669d52bd677
cTime=1716387769766
storageType=NAME_NODE
blockpoolID=BP-1732396691-192.168.88.161-1716387769766
layoutVersion=-65
DataNode文件内容:
storageID=DS-fc5ea869-1ec0-413a-a314-540f16b902a0
clusterID=CID-135a156a-6ad8-4450-a5ea-5f5587a97d90
cTime=0
datanodeUuid=45faab02-d362-4af7-9375-7f107922c01c
storageType=DATA_NODE
layoutVersion=-57