adolfjap

hdfs format 格式化 后datanode无法启动

hdfs namenode -format后datanode没有启动,日志显示

java.io.IOException: Incompatible clusterIDs in /service/hadoop-3.2.0/tmp/dfs/data: namenode clusterID = CID-09801c45-b7bf-4629-a9cc-251d41d8db24; datanode clusterID = CID-081fba57-f02b-494e-aeda-97b09480a631

日志显示namenode clusterID和datanode clusterID 不匹配。
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

原因:每次namenode format会重新创建一个namenodeId,而data目录包含了上次format时的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空data下的所有目录.
解决办法:停掉集群,删除问题节点的data目录下的所有内容。即hdfs-site.xml文件中配置的dfs.data.dir目录。重新格式化namenode
另一个更省事的办法:先停掉集群,然后将datanode节点目录/dfs/data/current/VERSION中的修改为与namenode一致即可。

评论