大数据之hdfs详解之四:pid文件剖析

pid 默认存储在/tmp目录下,pid里面的内容就是进程号
在这里插入图片描述

pid文件删除,不影响服务正常运行和用户的读写,但是:
Stop:关闭不掉
start:重新起另一个进程
例如将namenode的pid 文件删除掉:
[hadoop@hadoop001 tmp]$ rm -f hadoop-hadoop-namenode.pid
jps查看进程,namenode还存在的,因为jps命令是读取hsperfdata_hadoop文件夹里面的内容的,所以jps命令查看进程还是会出现被杀掉的进程
在这里插入图片描述
namenode的pid文件被删除,但是进程还是在的:
在这里插入图片描述
现在关闭hdfs,抛出: no namenode to stop,但是namenode这个进程确确实实还是存在的,于是删掉pid 文件会关闭不了进程。
在这里插入图片描述
现在重启,然后查看namenode的pid 文件,已经不是之前的pid了,于是删掉pid文件会重启会造成系统进程紊乱:
在这里插入图片描述
在这里插入图片描述
重启之前kill掉之前的进程,必须要清除残留的pid 文件和jps目录文件
Pid 文件的删除或者残留虽然对当前的服务进程没有影响,但是一旦涉及到关闭或重启必然会有影响,关闭之后最好是需要到/tmp目录下检查一下有没有pid文件残留和jps命令有没有清空,确保重启之前这些文件是干净的。

所以有时候我们需要将pid文件的存储路径修改,而不是默认放在/tmp目录下,况且/tmp目录是一个月清空一次的,如果是一些很重要的文件或者进程放到了/tmp目录下,也是会有风险的,所以一些重要的文件像pid文件这种默认路径的就要重新设置路径,一些临时文件就可以存放在/tmp目录下。
比如修改pid文件:原始是在hadoop-env.sh文件配置这个文件的路径的
那么就在hadoop-env.sh文件修改pid的路径:
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
将其修改到自己要设置的路径目录下就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章