1. 程式人生 > >大資料開發之Hadoop篇----jps命令的剖析

大資料開發之Hadoop篇----jps命令的剖析

我們在大資料的日常生產當中會經常使用到jps命令,如果問起很多人他們都會知道jps命令是用來幹什麼的,檢視java相關的程序。但是這個命令是屬於哪個元件提供的呢?最起碼可以肯定不是linux系統自帶的。

jps是屬於jdk自帶的命令,當你機器安裝了jdk同時將jdk配置到系統的環境變數當中後,在命令列輸入jps就可以檢視當前的java程序了。

當我們使用hadoop這個使用者開啟了三個java程序後,你使用su切換到別的使用者後,你再使用jps可能是看不到這三個程序的,如果是切換到root使用者後使用jps來檢視java程序,則會返回process information unavaliable這樣的提示,這個時候我們還真不好判斷這個程序是不是真的不可用了。

所以無論我們在什麼時候使用jps命令後,返回的是程序不可用的提示時,最後先根據pid使用命令ps -ef | grep pid來檢視該命令是否真的不可用,如果是因為不同使用者的許可權問題顯示不可用,這你就根據ps -ef命令返回的資訊切換到這個程序所屬的使用者再來檢視。如果ps -ef中已經沒有了這個命令的,你就到/tmp下的hs開頭的資料夾中尋找這個pid檔案,找到了後就刪除掉他唄。

這裡注意了/tmp目錄下hs開頭的資料夾裡面記錄了各個使用者的jps命令下程序的程序號檔案,如果你刪除了對程序是不影響的,但是你使用jps命令是不能再看到這個程序了,所以會影響到我們的一些以jps命令為依據的shell指令碼的執行。