问题产生及其原因
datanode
数据节点无法启动,日志提示为cluster ID有冲突,具体为namenode
的cluster ID
与datanode
的cluster ID
不一致。
产生原因之一为,多次格式化namenode
,即多次执行过以下命令:
hdfs namenode -format
这造成namenode
cluster ID
产生更新,而原来datanode
的cluster ID
没有发生变化,因而冲突。
以上情形的典型标志是,第一次启动集群成功,后续启动失败。
解决方法
将datanode
的cluster ID修改为与namenode
的一致。修改后继续按照正常的三步程序即可启动集群。
那么如何修改呢?在hdfs-site.xml
找到存储namenode
和datanode
的VERSION
文件,将namenode
的cluster ID
覆盖掉datanode
的VERSION
文件中的cluster ID。需要覆盖的内容包含主节点和从节点的datanode
的VERSION
文件。
多说一句
一般集群namenode
只格式化一次的,别动不动就格式化namenode
。关机记得按照正常程序关闭集群,开机按照正常程序开启集群,千万别偷懒。