关于我第二次遇到Hadoop启动集群子节点没有DataNode节点问题

问题:因为多次格式化文件系统(命令:hadoop namenode -fromat )的时候,namenode产生的新的namespacelID与datanode所持有的namespaceID不一致导致的问题。

看了很多优秀博主的回答:有下面两种方式:

首先关闭集群

①可以找到自己的/tmp/dfs这个路径下的一个VERSION文件,在子节点里面修改成和主节点一样的。

②把这个/tmp/dfs的文件和日志删掉,然后重新格式化一下namenode:hdfs namenode -format然后就没问题了

重新启动集群

我第一次遇到这个问题的时候,我就想着用第一种方式来解决,问题是接二连三,反复试了很多次,但是没有解决;就是关闭集群后修改再次启动依然没有解决问题,真的会谢

当时百度了很多解决方案,最多的就是下面这个:

1)修改每个Slave的namespaceID,使其与Master的namespaceID一致。

或者

2)修改Master的namespaceID使其与Slave的namespaceID一致。

Master的“namespaceID”位于“/usr/hadoop/tmp/dfs/name/current/VERSION”文件里面,Slave的“namespaceID”位于“/usr/hadoop/tmp/dfs/data/current/VERSION”文件里面。
 

这个就是解决方案一的办法,CSDN和博客园都有博主提供这种办法;我个人感觉可能是以前的办法现在不适用或者是版本有出入,这个方法可能不太好用,总之,不推荐这个方法,因为不一定能解决问题还会浪费很多时间!

然后,因为我的集群上并没有什么重要数据,因为搭建好了并没有使用,再次用的时候发现这个问题,我第一次解决就是用的”把这个/tmp/dfs的文件和日志删掉”这个方法

第一次最后怎么解决的具体内容忘记了,反正是删了什么东西,这次我直接用这个方法,结果不管用,我怀疑自己是删错地方了。

找了很多博客,都是说删除/tem/dfs文件夹下的内容,关键是不行啊。有博主说删除原来HDFS文件系统留存的文件。那就找一下HDFS的配置文件,我的在$HADOOP_HOME/etc/hadoop文件夹下。这个在你搭建环境的时候要配置hdfs-site.xml的时候就知道的路径。

hdfs-site.xml 文件内容:

dfs.replication:指定文件副本数量,默认值为3,伪分布式方式改为1

dfs.name.dir:指定namenode软件存储元数据的本地目录

dfs.data.dir:指定datanode软件存放文件块的本地目录

dfs.namenode.secondary.http-address:指定SecondaryNamenode的地址,在伪分布式环境下与Namenode在同一台机器

查看你的dfs.name.dir 和 dfs.data.dir 下的内容,也就是保存的路径在哪里,然后删掉文件夹下的data和name文件夹,直接用xftp来删除很方便,然后重新启动集群就可以了。

来源:Pugss:

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐