直奔主题:hadoop集群启动后,namenode一开始有,但是过一会就没了,大概率是因为元数据不统一的问题。
这里只是一种可能性,不排除有其他配置原因
为什么会造成元数据不统一,最常见的是你NameNode多次格式化了。
举个例子:
如果你的Hadoop集群只格式化了一次,即正常情况下,看下NameNode和DataNode的元数据Id值:
如果你多次格式化了,那么就会造成元数据的不统一,如查看下日志
解决方法1:复制NameNode中的ClusterId,修改DataNode中的ClusterId为
NameNode的ClusterId
一般NameNode的元数据Id地址为:(这个目录下有一个VERSION文件)
/你的安装路径,到你的安装包目录(可以看上面的图)/data/dfs/name/current
一般NameNode的元数据Id地址为:(这个目录下有一个VERSION文件)
/你的安装路径,到你的安装包目录(可以看上面的图)/data/dfs/data/current
修改后就可以重启进程了(一般改Id可以解决大部分启动不成功的问题)
解决方法2:上文的data文件夹,原本Hadoop安装目录下是没有这个目录的,是你在第一次格式化后产生的,那么简单了。你把data文件夹全部删掉。关闭集群。重新格式化一次即可。(但是还是推荐第一种方式)
(万一你手抖了,删掉一些不该删的可咋整)
如果还不行,可以仔细检查下配置问题。
主要是看这几个:
- hadoop-evn.sh
- core-site.xml
- mapred-site.xml
- hdfs-site.xml