HDFS真死和假死

HDFS真死和假死,其实就是 process information unavailable状态的真假判断。

一、真死

我们先在 /opt/software/hadoop-2.8.1/sbin目录下使用命令 ./start-dfs.sh将hdfs启动,这时候有一个NameNode,一个SecondaryNameNode,一个DataNode。

如图:

在root用户下使用命令 kill -9 $(pgrep -f hadoop-2.8.1) 将hadoop用户下的进程全部杀死。就会出现以下状态,使用命令 ps -ef|grep 进程号  查看进程也会发现,所有的进程都不存在了。这种状态就是真死


二、假死

        承接上文,在hadoop用户下再一次重新启动HDFS,然后jps查看进程是否存在。此时的进程是存在的。

如下图:

然后再在root用户下直接jps查看进程,却出现以下的状况,发现进程依旧不可查看。而且此时的进程的进程号发生了变化,进程号自动变为刚刚启动的进程号。

这种状态属于假死。


总结:真死——进程不存在且不可用(process information unavailable)

            假死——进程存在但不可用 (process information unavailable)


三、jps ——查看Java的进程号

进一步解释:jps 查询的是当前用户的 hsperfdata_当前用户/文件。

hsperfdata_hadoop/文件   文件的名字就是该用户进程的进程号。


四、在生产上出现process information unavailable状态时,该怎么做呢?

1. 使用 jps 找到进程号

2.  ps -ef|grep pid 查看是否存在

3.  如果不存在,就可以去该 /tmp/hsperfdata_xxx目录下删除

     查找准确的hsperfdata_xxx目录—— cd /tmp目录,然后输入命令 ll hsperfdata_*,查看所有用户的hsperfdata_xxx对应文件,然后看显示不可用(process information unavailable)的进程号在哪个文件夹,再去对应的文件夹将文件删除。

4.  如果存在,但是当前用户查看进程就是显示process information unavailable(不可用),就切换用户查看进程在哪。

你可能感兴趣的:(HDFS真死和假死)