2015-07-22 15 views
5

我已經在帶有JDK 1.7.0_80的CentOS上成功安裝了Hadoop CDH5.2。jps進程作爲root用戶不可用

進程啓動並正在成功運行。然而,當我嘗試顯示Java進程的使用jps根的列表中,它只返回的ID和無描述:

[[email protected] ~]# 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 

如果我須藤作爲HDFS,我可以看到它的流程描述:

[[email protected] ~]# sudo -u hdfs jps 
2871 SecondaryNameNode 
11495 Jps 
2972 DataNode 
2796 NameNode 

什麼可能導致根不檢索進程描述?

+0

歡迎計算器。只需訪問我們的[旅遊](http://stackoverflow.com/tour)頁面以獲取更多信息以使用本網站。 –

回答

4

所有這些pid都存儲在/ tmp目錄中。個人用戶啓動的進程將存儲在/ tmp/hsperfdata_ {用戶名}目錄中。看起來像root用戶無法讀取該文件。停止所有進程,清除/ tmp目錄並再次啓動所有進程。之後,再次嘗試使用jps命令。

更新:

如果您正在使用的OpenJDK,你將面臨這個問題。查看所有相關過程的HDFS,你必須使用以下

sudo -u hdfs jps 

同樣紗工藝的命令,你必須使用下面的命令

sudo -u yarn jps 

如果您使用Oracle JDK,JPS命令從root用戶將列出所有進程,前提是JAVA_HOME已正確定義,$ JAVA_HOME/bin位於PATH中。

+1

嗨阿邁勒,我累了,但無濟於事。它仍然無法顯示過程描述。 –

+0

我遇到了同樣的問題,我想出瞭解決方案並相應地更新了答案。 –

+1

謝謝阿邁勒。其實我正在使用Oracle JDK。我真的能夠看到這些進程,如果我與各自的用戶蘇,但我試圖通過根一次看到所有進程。 –

0

我想你需要以啓動它的用戶身份運行該命令。您可能是在不同的用戶下啓動應用程序,這就是爲什麼當您以root身份登錄時無法查看它們的原因。請嘗試啓動過程的根,所以[[email protected] ~]# jps應該工作

+0

我以root用戶身份運行該命令,但仍然看到此msg:進程信息不可用。 – mdivk

0

我遇到過類似的問題,我是從1.7到1.8更新我的Java版本後,所以我跟着上面並嘗試下面的命令和它的工作:
希望這有助於。
$ sudo su
那我就
$ jps
THI給我的下面:
18353 Main 11411 AlertPublisher 20998 NodeManager 20855 ResourceManager 29585 21275 ThriftServer 5302 Main 29637 18446 Main 22339 Bootstrap 11254 EventCatcherService 21082 JobHistoryServer 25685 Bootstrap 22246 HistoryServer 23637 RunJar 20288 QuorumPeerMain 23561 RunJar 21182 HRegionServer 20372 DataNode 20810 Bootstrap 22201 Main 20511 NameNode 31730 Jps 20440 SecondaryNameNode 21355 HMaster

相關問題