設置Hadoop+Hbase集羣pid文件存儲位置
有時候,咱們對運行幾天或者幾個月的hadoop或者hbase集羣作中止操做,會發現,中止命令無論用了,爲何呢?
由於基於java開發的程序,想要中止程序,必須經過進程pid來肯定,而hadoop和hbase默認的狀況下,會把pid文件存儲在Linux上的/tmp目錄的某個目錄下,進程名命令規則通常是 框架名-用戶名-角色名.pid,而默認狀況下,linux的tmp裏面的東西,一天會刪除一次,因此把pid文件放在這裏面,並非長久之計,爲了安全起見,咱們仍是放到一個固定的目錄下最好,固然不能放在/tmp下
如何配置避免把進程文件寫到臨時目錄下面呢?
一:Hadoop配置:
(1)修改hadoop-env.sh
修改以下,若是沒有下面的設置,能夠直接添加:
export HADOOP_PID_DIR=/ROOT/server/pids_hadoop_hbase
export HADOOP_SECURE_DN_PID_DIR=/ROOT/server/pids_hadoop_hbase
上述配置,影響
NameNode
DataNode
SecondaryNameNode
進程pid存儲
(2)修改mapred-env.sh
修改
export HADOOP_MAPRED_PID_DIR=/ROOT/server/pids_hadoop_hbase
上述配置,影響
JobHistoryServer
進程pid存儲
(3)修改yarn-env.sh
修改或者添加(不存在此項配置時),這裏面我沒有找到pid的環境設置變量,因此就直接添加了
export YARN_PID_DIR=/ROOT/server/pids_hadoop_hbase
上述配置,影響
NodeManager
ResourceManager
進程pid存儲
二:Hbase的配置
修改hbase-env.sh
export HBASE_PID_DIR=/ROOT/server/pids_hadoop_hbase
上述配置,影響
HMaster
HRegionServer
進程pid存儲
再次啓動集羣,就會發現指定的pids_hadoop_hbase下有進程pid文件已經存儲進來:
如此以來,就安全多了,再次關閉集羣時,不用再擔憂進程文件找不到,而致使只能暴力 kill 相關
進程,這樣作比較危險,通常狀況不推薦這樣作
參考文章:
http://blog.csdn.net/xiao_jun_0820/article/details/35222699
歡迎關注本站公眾號,獲取更多信息