大數據之hdfs詳解之四:pid文件剖析

pid 默認存儲在/tmp目錄下,pid裏面的內容就是進程號
在這裏插入圖片描述

pid文件刪除,不影響服務正常運行和用戶的讀寫,但是:
Stop:關閉不掉
start:重新起另一個進程
例如將namenode的pid 文件刪除掉:
[hadoop@hadoop001 tmp]$ rm -f hadoop-hadoop-namenode.pid
jps查看進程,namenode還存在的,因爲jps命令是讀取hsperfdata_hadoop文件夾裏面的內容的,所以jps命令查看進程還是會出現被殺掉的進程
在這裏插入圖片描述
namenode的pid文件被刪除,但是進程還是在的:
在這裏插入圖片描述
現在關閉hdfs,拋出: no namenode to stop,但是namenode這個進程確確實實還是存在的,於是刪掉pid 文件會關閉不了進程。
在這裏插入圖片描述
現在重啓,然後查看namenode的pid 文件,已經不是之前的pid了,於是刪掉pid文件會重啓會造成系統進程紊亂:
在這裏插入圖片描述
在這裏插入圖片描述
重啓之前kill掉之前的進程,必須要清除殘留的pid 文件和jps目錄文件
Pid 文件的刪除或者殘留雖然對當前的服務進程沒有影響,但是一旦涉及到關閉或重啓必然會有影響,關閉之後最好是需要到/tmp目錄下檢查一下有沒有pid文件殘留和jps命令有沒有清空,確保重啓之前這些文件是乾淨的。

所以有時候我們需要將pid文件的存儲路徑修改,而不是默認放在/tmp目錄下,況且/tmp目錄是一個月清空一次的,如果是一些很重要的文件或者進程放到了/tmp目錄下,也是會有風險的,所以一些重要的文件像pid文件這種默認路徑的就要重新設置路徑,一些臨時文件就可以存放在/tmp目錄下。
比如修改pid文件:原始是在hadoop-env.sh文件配置這個文件的路徑的
那麼就在hadoop-env.sh文件修改pid的路徑:
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
將其修改到自己要設置的路徑目錄下就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章