1.jps命令简介
选项 | 作用 |
---|---|
-q | 只输出VM标识符,省略主类的名称 |
-m | 输出启动时,传给main()函数的参数 |
-l | 输出主类全类名 |
-v | 输出jvm参数 |
jps命令是显示正在运行的java程序,root用户使用时显示所有运行的java程序,普通用户只显示自己启动的正在运行的java程序,而ps显示所有的进程,包括java程序。然而jps显示的某进程信息不可用时进程真的未启动吗???
2.jps命令位置
which jps #显示jps命令位置
/usr/java/jdk1.8.0_152/bin/jps #可知是属于jdk的
jps #当前linux系统启动了hdfs,有三个进程,如下
26001 NameNode
26097 DataNode
26263 SecondaryNameNode
26398 Jps
3.hadoop进程标识文件位置
默认hdfs进程标识文件在:/tmp/hsperfdata_进程用户名称 /目录下,如下
[hadoop@hadoop002 ~]$ ll /tmp/hsperfdata_hadoop/
total 96
-rw-------. 1 hadoop hadoop 32768 Feb 19 18:55 26001
-rw-------. 1 hadoop hadoop 32768 Feb 19 18:55 26097
-rw-------. 1 hadoop hadoop 32768 Feb 19 18:55 26263
4.jps的真真假假
采坑,重要 !!!我们有时再root用户下jps 出现 process information unavailable信息,并没有我们想要的hadoop进程信息,hadoop是没启动成功吗? 真不可用吗?
[root@hadoop002 ~]# jps
1520 Jps
26001 -- process information unavailable
26097 -- process information unavailable
26263 -- process information unavailable
使用ps -ef | grep namenode 验证进程是否存在的,发现进程是存在的,此时process information unavailable是假的,如果此时如 kill -9 这三个进程后依旧显示process information unavailable,这是切换到hadoop用户查看确实进程消失,此时process information unavailable是真的,若想root用户jps不显示残留信息rm -rf hsperfdata_hadoop即可。
注意 : — ps -ef| grep XXX是真正能验证进程是否运行的最佳方式
— kill进程触发方式: 1、人为 2、进程在Linux看来是耗内存最大的且会影响系统正常运行,系统自动给kill