每次开机启动Hadoop的时候,发现都没有NameNode进程,得重新格式化NameNode才能启动。下面说下怎样解决这个问题。
一、 问题描述
二、 问题分析
三、 解决方法
3.1 演示一:通过图形界面形式解决
3.2 演示二:以命令的形式解决
一、 问题描述
搭建完完全分布式模式,在启动Hadoop时发现没有NameNode进程,接着格式化NameNode后再重启,可以启动这个进程了,可下一次开机又是无法启动,每次都要重新格式化。
二、 问题分析
因为 默认的 tmp文件 每次重新开机都会被清空,造成NameNode的格式化信息丢失,所以每次开机都需要格式化才能启动NameNode进程。
三、 解决方法
我们可以通过 重新配置一个tmp文件目录 来解决这个问题。
下面分别演示通过Xftp去查找修改,和通过命令去查找修改的解决方法。如果是习惯使用图形界面操作的话,可以通过Xftp来找到文件修改进而解决问题。
3.1 演示一:通过图形界面形式解决
先在 /home目录 的用户目录下创建一个名为hadoop_tmp的目录(Xftp直接右键选择新建文件夹)

接着找到 hadoop配置目录 中的core-site.xml文件
(下图是先切换到 /root用户目录 ,再点击安装hadoop时创建的软连接进去找的。这个要根据自己的路径去找。)

以记事本的形式打开这个文件,加上以下内容
1<property>
2 <name>hadoop.tmp.dir</name>
3 <value>/home/XXX/hadoop_tmp</value>
4 <description>A base for other temporary directories.</description>
5</property>
注意: XXX 这个位置,填写你自己的用户名,记得根据自己的情况修改。

在重新格式化
1 hadoop namenode -format
最后启动集群,再执行jps命令就可以看到有NameNode进程启动了。
关掉虚拟机重新打开,也不用再格式化就可以看到启动NameNode进程了。
3.2 演示二:以命令的形式解决
同样的,先切换到 /home目录 的用户目录下

接着,创建一个hadoop_tmp目录(如果不是以管理员权限操作的话,要在命令前加 sudo )
1 mkdir ~/hadoop_tmp
输入ls命令查看

再找到安装的 hadoop目录 中的core-site.xml文件
(根据自己的情况查找,如果真的不知道安装到哪里了,推荐通过Xftp的图形界面查找,那样的话查看起来会方便一点。)

再执行下面的命令( gedit 这个位置,可以用 vi 或者 vim 替代)
1 gedit core-site.xml
添加下面的内容(XXX这个位置,改为你的用户名)
1<property>
2 <name>hadoop.tmp.dir</name>
3 <value>/home/XXX/hadoop_tmp</value>
4 <description>A base for other temporary directories.</description>
5</property>
重新格式化
1 hadoop namenode -format
最后重启集群,再执行jps命令验证,就可以启动NameNode进程了,并且下次开机也不用重新格式化,就有NameNode进程了。
————————————————
版权声明:本文为CSDN博主「苜苜的烂笔头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45069279/article/details/109254869