背景
最近因为集群中的一个节点挂掉了(Linux系统挂了),所以从另外一个节点把所有文件重新拷贝了一份到这个节点上。然后常规启动集群后,发现所有数据节点都已正常启动,但通过web页面查看http://master:50070,在Live Node里缺少了这台之前挂掉的节点,因为是整体拷贝,所以包括HDFS的元数据信息也是一模一样的,造成冲突。
原因分析
1、找到配置文件hdfs-site.xml
2、找到其中dfs.datanode.name.dir属性(网上还有一说,可能是dfs.data.dir属性,具体具体看你用哪个设置的数据存储路径)的路径下,如***/hdfs/data
3、再找到路径下 VERSION文件
4、storageID和 datanodeUuid完全一致导致冲突。
解决方案
1、删除hdfs元数据目录下所有文件,如**/hdfs/data目录下的所有文件;
2、格式化namenode: hdfs namenode -format;
3、重启集群;