format Hadoop集群后slave的DataNode无法启动的问题

因为是头一次编写,尝试一下。
首先我们要做的是环境介绍。
3个虚拟机:1个master,2个slave。
主要操作在master上。
首先root 111111进入master。
启动Hadoop:
/usr/local/src/hadoop-2.6.1/bin/hadoop namenode -format
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后启动集群:
/usr/local/src/hadoop-2.6.1/sbin/start-all.sh
在这里插入图片描述
检查集群状态jps:

这是MASTER的
在这里插入图片描述在这里插入图片描述
这里出现了问题,slave1、2中并没有启动到datanode
然后上网一顿查资料,发现是,因为没有删除
master中删除rm -rf /usr/local/src/hadoop-2.6.1/dfs/name和rm -rf /usr/local/src/hadoop-2.6.1/tmp/
slave1和2中的/usr/local/src/hadoop-2.6.1/dfs/data中rm -rf current/

然后在执行/usr/local/src/hadoop-2.6.1/bin/hadoop namenode -format可以看到并没有之前需要输出yes或者no的步骤:
在这里插入图片描述
然后启动集群:
在这里插入图片描述
然后分别在master和slave1、2上jps查看集群状态:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
可以看到集群是健康的,所以每次用完要记得关闭集群,没事不用老format玩。。。
问题的原因:
当我们使用hadoop namenode -format格式化namenode时,会在namenode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径)中保存一个current/VERSION文件,记录clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,这样,datanode和namenode之间的ID不一致
另一种解决办法:
hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动集群后再执行jps命令可以看到datanode已正常启动。

补充一下格式化前的操作:
1、关闭集群
2、删除/usr/local/src/hadoop-2.6.1/dfs/name 下面文件 【每个节点操作】
3、删除/usr/local/src/hadoop-2.6.1/dfs/data 下面文件 【每个节点操作】
4、删除/usr/local/src/hadoop-2.6.1/tmp 下面文件 【每个节点操作】
5、删除/usr/local/src/hadoop-2.6.1/logs 下面文件 【每个节点操作】
6、重新格式化 hadoop namenode -format 【只在master上操作】
7、启动集群

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页