踩坑:再次格式化hdfs就jps命令显示DataNode未启动

踩坑:再次格式化hdfs就jps命令显示DataNode未启动

标签(空格分隔): 踩坑


修改了hadoop的core.site.xml后,我自以为是地重新格式化了一下hdfs:hdfs namenode -format忘记了不能再次格式化的忠告!

结果就出现了jps中显示DataNode没启动的问题

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

在网上查了一些解决方法,有些绕。

我们究其问题根本,就是在我们第一次执行格式化的时候,会在我之前在core-site.xml中创建的缓存路径tmp中保存一个current/VERSION文件,记录namespaceID,标识了所格式化的 namenode的版本。其内容如下:

[japson@localhost current]$ cat VERSION 
#Fri May 25 19:18:17 PDT 2018
storageID=DS-faff91b4-f8e2-4f17-a443-2a36754f5f06
clusterID=CID-cc09d7a7-f7ba-46cb-949c-119e4d8ca759
cTime=0
datanodeUuid=19590e68-f603-4984-8c57-df526e6d9efe
storageType=DATA_NODE
layoutVersion=-56

而如果我们再次格式化那么datanode中保存的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。

那么既然这是格式化自动生成的,我直接把VERSION文件删除掉,然后重新格式化一次不久好了吗?

一试,果然好使了:

[japson@localhost sbin]$ jps
4385 NameNode
4660 SecondaryNameNode
5554 Jps
5337 DataNode

猜你喜欢

转载自blog.csdn.net/japson_iot/article/details/80519298