大数据学习hdfs详解之pid文件剖析

pid文件

pid默认存储在/tmp目录下
pid内容就是进程号

[[email protected] ~]$ cd /tmp
[[email protected] tmp]$ ll
total 132
drwxrwxr-x. 4 hadoop hadoop 4096 Sep 18 10:05 hadoop-hadoop
-rw-rw-r--. 1 hadoop hadoop    6 Oct 20 22:44 hadoop-hadoop-datanode.pid
-rw-rw-r--. 1 hadoop hadoop    6 Oct 20 22:44 hadoop-hadoop-namenode.pid
-rw-rw-r--. 1 hadoop hadoop    6 Oct 20 22:45 hadoop-hadoop-secondarynamenode.pid
drwxr-xr-x. 2 hadoop hadoop 4096 Oct 21 14:12 hsperfdata_hadoop
drwxr-xr-x. 2 root   root   4096 Oct 21 13:21 hsperfdata_root
drwxrwxr-x. 5 hadoop hadoop 4096 Oct 17 18:00 Jetty_0_0_0_0_45228_mapreduce____.gm09tq
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 22:45 Jetty_0_0_0_0_50070_hdfs____w2cu08
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 20:44 Jetty_0_0_0_0_50090_secondary____y6aanv
drwxrwxr-x. 5 hadoop hadoop 4096 Oct 17 13:50 Jetty_0_0_0_0_59533_mapreduce____qstc14
drwxrwxr-x. 5 hadoop hadoop 4096 Oct 17 13:32 Jetty_0_0_0_0_8042_node____19tj0x
drwxrwxr-x. 5 hadoop hadoop 4096 Oct 17 13:32 Jetty_0_0_0_0_8088_cluster____u0rgz3
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 22:45 Jetty_hadoop001_50090_secondary____.qx3mj2
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 17 13:28 Jetty_localhost_40625_datanode____.kb9q58
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 21:16 Jetty_localhost_42041_datanode____szjtna
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 20:43 Jetty_localhost_42389_datanode____vird3x
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 22:37 Jetty_localhost_44149_datanode____.1saazn
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 20:07 Jetty_localhost_45907_datanode____ja8cau
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 18:09 Jetty_localhost_47252_datanode____nf6uab
drwxrwxr-x. 4 hadoop hadoop 4096 Oct 20 22:44 Jetty_localhost_47379_datanode____.2c1ctj
drwx------. 2 root   root   4096 Oct 20 17:39 keyring-0J0MsQ
drwx------. 2 root   root   4096 Oct 17 13:02 keyring-9L5KKv
drwx------. 2 root   root   4096 Sep 14 14:34 keyring-F1yRIk
drwx------. 2 root   root   4096 Sep  9 18:53 keyring-pO5HHo
drwx------. 2 gdm    gdm    4096 Oct 20 17:39 orbit-gdm
drwx------. 2 root   root   4096 Oct 20 17:40 orbit-root
drwx------. 2 gdm    gdm    4096 Oct 20 17:40 pulse-APdpWYpUo0LG
drwx------. 2 root   root   4096 Oct 20 17:39 pulse-DOVkIXA8DDJM
drwx------. 2 louie  louie  4096 Sep 14 00:10 pulse-LGqSpXCk7wzX
drwx------. 2 root   root   4096 Oct 17 13:02 virtual-root.hAnDvP
drwx------. 2 root   root   4096 Oct 20 17:39 virtual-root.uY6GX6
-rw-rw-r--. 1 hadoop hadoop    5 Oct 17 13:31 yarn-hadoop-nodemanager.pid
-rw-rw-r--. 1 hadoop hadoop    5 Oct 17 13:31 yarn-hadoop-resourcemanager.pid
[[email protected] tmp]$ cat hadoop-hadoop-datanode.pid
13229

hadoop-env.sh文件
export HADOOP_PID_DIR=${HADOOP_PID_DIR}

pid文件删除,不影响服务正常运行和用户的读写,
但是: stop–>关闭不掉
start–>另起一个进程

[[email protected] tmp]$ rm -f hadoop-hadoop-namenode.pid  
[[email protected] hadoop]$ jps
13229 DataNode
20650 Jps
13364 SecondaryNameNode
13132 NameNode
[[email protected] tmp]$ ps -ef | grep namenode
hadoop    13132      1  0 Oct20 ?        00:02:38 /usr/java/jdk1.7.0_80/bin/java -Dproc_namenode -Xmx1000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0 -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs -Dhadoop.log.file=hadoop-hadoop-namenode-hadoop001.log -Dhadoop.home.dir=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0 -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,RFA -Djava.library.path=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender -Dhadoop.security.logger=INFO,RFAS org.apache.hadoop.hdfs.server.namenode.NameNode

关闭hdfs,抛出:no namenode to stop,但是namenode这个进程还存在,关掉pid文件会关闭不了进程
大数据学习hdfs详解之pid文件剖析
在重启之后查看namenode的Pid文件时,发现不是之前的,删掉 pid后重启造成系统进程混乱
大数据学习hdfs详解之pid文件剖析
大数据学习hdfs详解之pid文件剖析
重启之前kill掉之前的进程时,务必要清除残留的pid 文件和jps目录文件
Pid 文件的删除或者残留虽然对当前的服务进程没有影响,但是当涉及关闭或重启肯定会有影响,关闭之后最好是需要到/tmp目录下检查一下有没有pid文件残留以及jps命令有没有清空,确保重启之前这些文件是干净的。
所以有时候我们需要将pid文件的存储路径修改,而不是默认放在/tmp目录下,况且/tmp目录是一个月清空一次的,如果是一些很重要的文件或者进程放到了/tmp目录下,也是会有风险的,所以一些重要的文件像pid文件这种默认路径的就要重新设置路径,一些临时文件就可以存放在/tmp目录下。
Example:
修改pid文件:原始是在 hadoop-env.sh 文件配置这个文件的路径的
那么就在 hadoop-env.sh 文件修改pid的路径:
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
将其修改到自己要设置的路径目录下就可以了。