查看hdfs主从架构:
[hadoop@hadoop001 hadoop-2.6.0-cdh5.7.0]$ jps
12884 Jps
11595 NameNode
11828 SecondaryNameNode
12665 DataNode
查看jps来自哪里 (来自java)
[hadoop@hadoop001 hadoop-2.6.0-cdh5.7.0]$ which jps
/usr/java/jdk1.7.0_80/bin/jps
其他用户查看
[root@hadoop001 ~]# jps
11595 -- process information unavailable
11828 -- process information unavailable
12416 Jps
11694 -- process information unavailable
可见进程是存在并可用的,将其中一个进程kill掉时jps,任然显示杀掉的进程,则这时进程处于假死状态:
[root@hadoop001 ~]# kill -9 11694
[root@hadoop001 ~]# jps
12446 Jps
11595 -- process information unavailable
11828 -- process information unavailable
11694 -- process information unavailable
[root@hadoop001 ~]# ps -ef | grep 11694
root 12472 4062 0 22:32 pts/4 00:00:00 grep 11694
今后在看到:process information unavailable
正确做法:
第一步:找到进程号;
第二步:ps -ef | grep pid
查看是否存在?
- 假如存在,root是看不到进程信息,通过
ps -ef
可查看是哪个用户运行这个进程的,su - 用户
进去查看; - 假如不存在,那么怎样清空残留信息呢?
手工删除:rm -f /tmp/hsperfdata_${查看的用户}/pid
残留信息
[root@hadoop001 tmp]# ll hsperfdata_hadoop
total 96
-rw-------. 1 hadoop hadoop 32768 Oct 20 22:41 11595
-rw-------. 1 hadoop hadoop 32768 Oct 20 22:40 11828
-rw-------. 1 hadoop hadoop 32768 Oct 20 22:41 12665
我们在删掉这个文件时进程还好着,ps -ef | grep pid
可以看到进程的运行,这是由于很多shell脚本是使用jps命令写的。删除hsperfdata_$ {user}这个文件夹并不会影响进程挂掉,只是jps命令所依赖的一些调度一些监控必然会没有了。
假如执行rm -f /tmp/hsperfdata_${user}/pid文件
后,进程没有挂掉,但是jps命令不显示了,那么所依赖的脚本都会有问题
------往后不定期更新------------