大數據之----hadoop中各pid進程號之快速定位
阿新 • • 發佈:2018-05-21
shell hadoop 經常管理和監控,需要進行shell編程,直接對進程kill或者重啟操作。我們需要進行快速定位到每個進程的pid號
pid默認存儲在/tmp目錄 if kill -0
echo $command running as process
echo $! > $pid
if [ -f $pid ]; then
TARGET_PID=
rm -f $pid
官方給的sh腳本中,也是通過讀取pid文件內容作為進程kill對象 hadoop-hadoop-namenode.pid yarn-hadoop-resourcemanager.pid
hadoop-hadoop-secondarynamenode.pid yarn-hdfs-resourcemanager.pid
[hadoop@hadoop01 tmp]$
[hadoop@hadoop01 tmp]$ cat hadoop-hadoop-datanode.pid
8990
[hadoop@hadoop01 tmp]$ jps
12060 Jps
9193 SecondaryNameNode
9566 NodeManager
8990 DataNode
9450 ResourceManager
pid默認存儲在/tmp目錄
pid內容為進程號
ps -ef|grep hadoop 出現PID A,B,C 可能誤殺B,C
[hadoop@hadoop000 sbin]$ cat hadoop-daemon.sh |grep pid
#HADOOPPIDDIR The pid files are stored. /tmp by default.
pid=$HADOOP_PID_DIR/hadoop-$HADOOP_IDENT_STRING-$command.pid
if [ -f $pid ]; then
cat $pid
> /dev/null 2>&1; thenecho $command running as process
cat $pid
. Stop it first.echo $! > $pid
if [ -f $pid ]; then
TARGET_PID=
cat $pid
rm -f $pid
官方給的sh腳本中,也是通過讀取pid文件內容作為進程kill對象
我們直接對pid文件的數字就是我們對於的進程pid
[hadoop@hadoop01 tmp]$ ls *.pid
hadoop-hadoop-datanode.pid yarn-hadoop-nodemanager.pid
hadoop-hadoop-secondarynamenode.pid yarn-hdfs-resourcemanager.pid
[hadoop@hadoop01 tmp]$
[hadoop@hadoop01 tmp]$ cat hadoop-hadoop-datanode.pid
8990
[hadoop@hadoop01 tmp]$ jps
12060 Jps
9193 SecondaryNameNode
9566 NodeManager
8990 DataNode
9450 ResourceManager
kill -0 cat /tmp/hadoop-hadoop-datanode.pid
---shell常用kill pid方式`
大數據之----hadoop中各pid進程號之快速定位