欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法

程序员文章站 2022-07-15 23:39:04
...

每次开机启动Hadoop的时候,发现都没有NameNode进程,得重新格式化NameNode才能启动。下面说下怎样解决这个问题。

一、 问题描述

搭建完完全分布式模式,在启动Hadoop时发现没有NameNode进程,接着格式化NameNode后再重启,可以启动这个进程了,可下一次开机又是无法启动,每次都要重新格式化。

二、 问题分析

因为 默认的 tmp文件 每次重新开机都会被清空,造成NameNode的格式化信息丢失,所以每次开机都需要格式化才能启动NameNode进程。

三、 解决方法

我们可以通过 重新配置一个tmp文件目录 来解决这个问题。

下面分别演示通过Xftp去查找修改,和通过命令去查找修改的解决方法。如果是习惯使用图形界面操作的话,可以通过Xftp来找到文件修改进而解决问题。

3.1 演示一:通过图形界面形式解决

先在 /home目录 的用户目录下创建一个名为hadoop_tmp的目录(Xftp直接右键选择新建文件夹)

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法

接着找到 hadoop配置目录 中的core-site.xml文件

(下图是先切换到 /root用户目录 ,再点击安装hadoop时创建的软连接进去找的。这个要根据自己的路径去找。)

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法
以记事本的形式打开这个文件,加上以下内容

<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/XXX/hadoop_tmp</value>
        <description>A base for other temporary directories.</description>
</property>

注意: XXX 这个位置,填写你自己的用户名,记得根据自己的情况修改。

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法
在重新格式化

hadoop namenode -format

最后启动集群,再执行jps命令就可以看到有NameNode进程启动了。

关掉虚拟机重新打开,也不用再格式化就可以看到启动NameNode进程了。

3.2 演示二:以命令的形式解决

同样的,先切换到 /home目录 的用户目录下

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法

接着,创建一个hadoop_tmp目录(如果不是以管理员权限操作的话,要在命令前加 sudo )

mkdir ~/hadoop_tmp

输入ls命令查看

每次开机都需要 重新格式化 才有 NameNode进程 的解决方法

再找到安装的 hadoop目录 中的core-site.xml文件

(根据自己的情况查找,如果真的不知道安装到哪里了,推荐通过Xftp的图形界面查找,那样的话查看起来会方便一点。)
每次开机都需要 重新格式化 才有 NameNode进程 的解决方法
再执行下面的命令( gedit 这个位置,可以用 vi 或者 vim 替代)

gedit core-site.xml

添加下面的内容(XXX这个位置,改为你的用户名)

<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/XXX/hadoop_tmp</value>
        <description>A base for other temporary directories.</description>
</property>

重新格式化

hadoop namenode -format

最后重启集群,再执行jps命令验证,就可以启动NameNode进程了,并且下次开机也不用重新格式化,就有NameNode进程了。


如果文章对你有帮助,请点个,顺带留给评论支持一下????,若有疑问可以私信留言????。如果能给个三连(点赞收藏关注 )就最好啦????。