namenode clusterID =.... datanode clusterID=....

1.报错信息

java.io.IOException: Incompatible clusterIDs in /opt/module/hadoop-3.3.1/data/dfs/data: namenode clusterID = CID-aa23cfe4-9ad3-4c06-87fc-e862c8f3a722; datanode clusterID = CID-55fa9a51-7777-4ff4-87d6-4df7cf2cb8b9

2.场景

  • 当我修改配置文件,并删除在core-site.xml文件中配置的存储文件数据,重新格式化hdfs,启动后,发现日志报错

3.解决方法

  • 根据日志描述,原因是datanode的clusterID 和 namenode的clusterID 不匹配。
  • 原因找到,看看是否如日志描述的这样。
  • 打开hdfs-site.xml中关于datanode和namenode对应的目录,分别打开其中的current/VERSION文件,进行对比。
${datanode}/current/VERSION:

storageID=DS-be8dfa2b-17b1-4c9f-bbfe-4898956a39ed
clusterID=CID-200e6206-98b5-44b2-9e48-262871884eeb
cTime=0
datanodeUuid=406b6d6a-0cb1-453d-b689-9ee62433b15d
storageType=DATA_NODE
layoutVersion=-55
${namenode}/current/VERSION:

namespaceID=670379
clusterID=CID-a3938a0b-57b5-458d-841c-d096e2b7a71c
cTime=0
storageType=NAME_NODE
blockpoolID=BP-325596647-127.0.1.1-1407429078192
layoutVersion=-56
  • 果然如日志中记录的一样,于是修改datanode的VERSION文件中的clusterID,使与namenode保持一致,然后启动dfs(执行start-dfs.sh),在执行jps查看启动情况,发现全部正常启动。
10256 ResourceManager
30614 NameNode
30759 DataNode
30935 SecondaryNameNode
31038 Jps
10399 NodeManager

结论

  • 执行hdfs namenode -format后,current目录会删除并重新生成,其中VERSION文件中的clusterID也会随之变化,而datanode的VERSION文件中的clusterID保持不变,造成两个clusterID不一致。
  • 所以为了避免这种情况,可以再执行的namenode格式化之后,删除datanode的current文件夹,或者修改datanode的VERSION文件中出clusterID与namenode的VERSION文件中的clusterID一样,然后重新启动dfs。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值