1.首先删掉root用户下/tmp/hsperfdata*文件,不然会对演示效果造成干扰,原因见文章后面
2.在hadoop用户下启动hdfs
3.在root用户下关闭掉有关hadoop-2.8.1的所有进程(模拟突然断电的情况)
此时jps发现三个进程状态均为“process information unavailable”,ps -ef | grep 5442查看进程状态,发现进程实际也不存在
4.在hadoop用户下再次启动hdfs
5.在root用户下jps
此时jps发现三个进程状态仍为“process information unavailable”,ps -ef | grep 5958查看进程状态,发现进程实际是存在的,这就出现了三个进程好像是死的但其实是活着的状态
###其实在hadoop用户下jps查看的是/tmp/hsperfdata_hadoop内的文件
当把/tmp/hsperfdata_hadoop内的文件全部删除后,再jps发现进程已经没有了
6.生产上遇见process information unavailable情况是注意要遵循以下步骤:
(1)jps查看进程号
(2)ps -ef | grep 进程号 查看进程是否实际存在
(3)假如不存在,去/tmp/hsperfdata_用户名 文件夹下将这几个进程的文件夹删除
那么,如何通过进程号知道这个进程是哪个用户下的进程呢,也就是如何知道删除哪个用户的/tmp/hsperfdata_用户名呢?
在/tmp目录下,ll hsperfdata_* ,然后逐个看哪个用户的hsperfdata_'用户名'文件夹里有以该进程号为名字的文件夹就ok了
(4)假如存在,root用户查看为process information unavailable,那么切换到该用户查看就可以了