我已经使用JDK 1.7.0_80在CentOS上成功安装了Hadoop CDH5.2。
进程启动并成功运行。但是,当我尝试使用[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
以root身份显示java进程列表时,它只返回ID而没有描述:
[root@elephant ~]# sudo -u hdfs jps
2871 SecondaryNameNode
11495 Jps
2972 DataNode
2796 NameNode
如果我作为hdfs sudo,我可以看到它的进程描述:
{{1}}
什么可能导致root无法检索进程描述?
答案 0 :(得分:5)
所有这些pid都存储在/ tmp目录中。各个用户启动的进程将存储在目录/ tmp / hsperfdata_ {username}中。好像root用户似乎无法读取该文件。停止所有进程,清除/ tmp目录并再次启动所有进程。之后,再次尝试jps命令。
<强>更新强>
如果您使用的是openjdk,则会遇到此问题。要查看所有与hdfs相关的进程,您必须使用以下命令
sudo -u hdfs jps
对于纱线工艺,您必须使用以下命令
sudo -u yarn jps
如果您使用oracle jdk,root用户的jps命令将列出所有进程,前提是JAVA_HOME已正确定义且$ JAVA_HOME / bin在您的PATH中。
答案 1 :(得分:0)
我认为您需要以启动它的用户身份运行该命令。您可能正在以不同的用户身份启动应用程序,这就是当您以root身份登录时无法查看它们的原因。尝试以root用户身份启动流程,因此[root@elephant ~]# jps
应该正常工作