原因:是因为多次格式化NameNode的原因,每次格式化NameNode的时候,hadoop集群就会产生一个新的集群ID,导致了NameNode和DataNode的集群ID不一致,所以导致运行start-all.sh后,hadoop的NameNode进程启动不起来。
现在作者附上两种解决方法,我是使用了第二种方法成功的。
第一种解决方案:
在hadoop集群当中的所有节点将中的tmp文件删除和logs文件里面的内容删除里面的的内容,然后重新初始化NameNode。
hdfs NameNode -format
在core-site.xml文件里面查看自己tmp文件的位置:
hadoop路径下etc/hadoop路径下面,每个人hadoop安装的路径可能不同,我的是
/home/hadoop/software/hadoop-3.3.0/etc/hadoop
就可以了,如果这不行的话,就使用第二种解决方法,这个是能得吃的。
第二种解决方案:
将主节点的hadoop的包删掉,从从节点将hadoop的包用scp传输过去,因为集群当中的hadoop的包里面的内容都是一样的。
文章来源:https://www.toymoban.com/news/detail-715678.html
scp -r hadoop-3.3.0/ hadoop@192.168.19.63:/home/hadoop/software
前面的目录是自己从节点的hadoop包,然后后面的目录是要传输到主节点的目录。文章来源地址https://www.toymoban.com/news/detail-715678.html
注意:传输好之后一定要将hadoop的tmp文件里面的内容清除过后再进行格式化NameNode。并且之前一定即使NameNode没有启动,也要将hadoop集群关闭,如果使用第二个方案的话,那么之前hdfs里面的数据将会清空。
到了这里,关于Hadoop集群当中主节点的NameNode进程启动不成功的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!