在学习大数据的阶段,难免会遇到没有一步步关闭hdfs、yarn之类就直接关电脑的情况,下次来的时候就会发现,咦,怎么打不开了,一看报错是xxx.pid拒绝访问什么的,这时候就是pid的问题,这里对PID文件的问题做一个汇总。
1.概述
我们再用jps
指令查询当前服务器中的java进程时,在出现进程名称的同时也会有一个id编号,如下图所示:
前面的编号就是这个进程的pid编号。
2.pid编号存储位置
无论是hadoop还是zookeeper,都会建立一个后缀名为pid的文件用于存储各个进程的id编号,对于不同进程的pid文件位置:
- hadoop : /tmp
- zookeeper: 通过在zookeeper安装文件夹下查看
conf/zoo.cfg
文件中dataDir=/opt/module/zookeeper-3.4.10/zkData
的配置文件,这是笔者的文件目录
3.操作
通过将pid文件的权限更改为当前用户即可,也可通过将文件的权限给同组和其他人,这里以用户bob举例
chown bob:bob xxx.pid
chmod 777 xxx.pid
4.补充
之前笔者已经遇到过类似的问题,之前的mysql,直接通过root权限登陆的,这样当然也可以解决。详见:Linux中MySQL报错:xxx Permission denied , MySQL is not running, but PID file exists
由于笔者水平有限,非常欢迎各位大佬交流其他情况。