我已经使用JDK 1.7.0_80在CentOS上成功安装了Hadoop CDH5.2.
进程启动并成功运行.但是当我尝试以root用户身份显示java进程列表时jps,它只返回ID而没有描述:
[root@elephant ~]# jps
11478 Jps
2871 -- process information unavailable
2972 -- process information unavailable
3146 -- process information unavailable
3611 -- process information unavailable
2796 -- process information unavailable
3445 -- process information unavailable
Run Code Online (Sandbox Code Playgroud)
如果我sud为hdfs,我可以看到它的进程描述:
[root@elephant ~]# sudo -u hdfs jps
2871 SecondaryNameNode
11495 Jps
2972 DataNode
2796 NameNode
Run Code Online (Sandbox Code Playgroud)
什么可能导致root不检索进程描述?
所有这些pid都存储在/ tmp目录中.各个用户启动的进程将存储在目录/ tmp/hsperfdata_ {username}中.好像root用户似乎无法读取该文件.停止所有进程,清除/ tmp目录并再次启动所有进程.之后,再次尝试jps命令.
更新:
如果您使用的是openjdk,则会遇到此问题.要查看所有与hdfs相关的进程,您必须使用以下命令
sudo -u hdfs jps
Run Code Online (Sandbox Code Playgroud)
类似地,对于纱线工艺,您必须使用以下命令
sudo -u yarn jps
Run Code Online (Sandbox Code Playgroud)
如果您使用oracle jdk,则root用户的jps命令将列出所有进程,前提是JAVA_HOME已正确定义且$ JAVA_HOME/bin在您的PATH中.