jps进程不可用作root用户

时间:2015-07-22 03:47:56

标签: java hadoop

我已经使用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无法检索进程描述?

2 个答案:

答案 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应该正常工作