大数据之----hadoop中各pid进程号之快速定位

经常管理和监控,需要进行shell编程,直接对进程kill或者重启操作。我们需要进行快速定位到每个进程的pid号
pid默认存储在/tmp目录

pid内容为进程号

ps -ef|grep hadoop 出现PID A,B,C 可能误杀B,C 

[hadoop@hadoop000 sbin]$ cat hadoop-daemon.sh |grep pid
#   HADOOP_PID_DIR   The pid files are stored. /tmp by default.
pid=$HADOOP_PID_DIR/hadoop-$HADOOP_IDENT_STRING-$command.pid
    if [ -f $pid ]; then
      if kill -0 `cat $pid` > /dev/null 2>&1; then
        echo $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 绝对不能放到/tmp?
一个月/tmp 会自动删除pid(Linux内核保留的30天)
mkdir /data/hadoop/tmp 
chmod -R 777 /data/hadoop/tmp 
vi hadoop-env.sh
export HADOOP_PID_DIR=/data/hadoop/tmp 



我们直接对pid文件的数字就是我们对于的进程pid

[hadoop@hadoop01 tmp]$ ls *.pid
hadoop-hadoop-datanode.pid           yarn-hadoop-nodemanager.pid
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
kill -0 `cat /tmp/hadoop-hadoop-datanode.pid`  ---shell常用kill pid方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值