美文网首页
stop-dfs.sh执行不成功

stop-dfs.sh执行不成功

作者: Tomy_Jx_Li | 来源:发表于2018-10-16 21:29 被阅读12次

终止dfs失效

执行stop-dfs.sh之后,会产生如下日志

Stopping namenodes on [hadoop01]
hadoop01: no namenode to stop
localhost: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: no secondarynamenode to stop

根据日志可以看出来,dfs的三个进程都未终止。

原因

原因就是dfs启动之后会在/tmp下生成三个配置文件,如图:


启动之后的文件

文件名是hadoop-用户名-datanode.pid,hadoop-用户名-namenode.pid,hadoop-用户名-secondarynamenode.pid,文件内容就是你的这三个进程的pid。可以使用jps命令查看。
因为/tmp下的文件如果30天没有访问的话,就会直接删除的。所以如果这三个文件被删除了,那么执行stop-dfs.sh的时候就不知道启动的dfs的进程id,就不能正常终止dfs了。

解决办法

1.可以手动创建这三个文件
2.使用kill -9 pid进行终止,后续如果启动(也就是执行start-dfs.sh出错了),那么就执行下hadoop namenode -format,然后在重启
3.要想彻底解决,还是需要在重启之前手动配置下pid的生成目录,配置办法就是修改配置文件hadoop-env.sh下的export HADOOP_PID_DIR=${HADOOP_PID_DIR},就可以了,当然不要再放到这个目录下了

相关文章

网友评论

      本文标题:stop-dfs.sh执行不成功

      本文链接:https://www.haomeiwen.com/subject/hidkzftx.html