1、jps说明
jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。
2、选项
-q:仅输出VM标识符,不包括classname,jar name,arguments in main method
-m:输出main method的参数
-l:输出完全的包名,应用主类名,jar的完全路径名
-v:输出jvm参数
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
3、jps在hadoop生产使用方法
a.模拟生产案例
hadoop用户启动hadoop的hdfs,然后用root用户执行kill -9 $(pgrep -f hadoop),然后用jps分别在root和hadoop用户查看Java进程信息:
再次用hadoop用户启动hdfs,然后用jps分别查看信息:
b、案例分析
从以上结果能够看出jps得出的状态信息并不能完全准确的判断一个进程的真实状态
c、生产操作
当jps发现获取进程信息有异常时,第一步应该用ps -ef|grep pid,确定进程是否真的存在,如果存在则说明进程是活的,不可轻易kill,如果不存在那说明该进程已经死掉了。第二步,确定进程已死之后,我们需要确定jps异常信息产生的用户,执行ll /tmp/hsperfdata*,会显示所有用户(目录命名格式为hsperfdata_xx用户)进程信息文件(这些文件以进程号命名,直接对照进程号即可确定用户)。第三步,我们需要到/tmp目录执行rm -rf hsperfdata_xx用户清除部分内容再重启hdfs。第四部,重启hdfs之后,jps查看进程信息。