每次开机启动Hadoop的时候,发现都没有NameNode进程,得重新格式化NameNode才能启动。下面说下怎样解决这个问题。
搭建完完全分布式模式,在启动Hadoop时发现没有NameNode进程,接着格式化NameNode后再重启,可以启动这个进程了,可下一次开机又是无法启动,每次都要重新格式化。
因为 默认的 tmp文件 每次重新开机都会被清空,造成NameNode的格式化信息丢失,所以每次开机都需要格式化才能启动NameNode进程。
我们可以通过 重新配置一个tmp文件目录 来解决这个问题。
下面分别演示通过Xftp去查找修改,和通过命令去查找修改的解决方法。如果是习惯使用图形界面操作的话,可以通过Xftp来找到文件修改进而解决问题。
先在 /home目录 的用户目录下创建一个名为hadoop_tmp
的目录(Xftp直接右键选择新建文件夹)
接着找到 hadoop配置目录 中的core-site.xml
文件
(下图是先切换到 /root用户目录 ,再点击安装hadoop时创建的软连接进去找的。这个要根据自己的路径去找。)
以记事本的形式打开这个文件,加上以下内容
<property>
<name>hadoop.tmp.dir</name>
<value>/home/XXX/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>
注意: XXX 这个位置,填写你自己的用户名,记得根据自己的情况修改。
在重新格式化
hadoop namenode -format
最后启动集群,再执行jps
命令就可以看到有NameNode进程启动了。
关掉虚拟机重新打开,也不用再格式化就可以看到启动NameNode进程了。
同样的,先切换到 /home目录 的用户目录下
接着,创建一个hadoop_tmp
目录(如果不是以管理员权限操作的话,要在命令前加 sudo )
mkdir ~/hadoop_tmp
输入ls
命令查看
再找到安装的 hadoop目录 中的core-site.xml
文件
(根据自己的情况查找,如果真的不知道安装到哪里了,推荐通过Xftp的图形界面查找,那样的话查看起来会方便一点。)
再执行下面的命令( 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进程了。
如果文章对你有帮助,请点个赞,顺带留给评论支持一下????,若有疑问可以私信留言????。如果能给个三连(点赞、收藏、关注 )就最好啦????。