HDFS的PID整理

前言:
    Linux中可以通过PID找到对相应的进程号和进程目录,ps -ef|grep pid可以单独kill想要的pid;如果生产上想通过shell脚本直接kill  `ps -ef|grep 服务名
  ,会把服务下所有多个进程和其他进程kill掉, 已hadoop为例可以读文件里进程号指定kill掉‘;
    Hodoop的PID默认存储路径为/tmpPID内容为进程号;


为什么说PID内容为进程号:
[hadoop@hadoop001 hadoop]$ jps
7857 DataNode
7748 NameNode
8774 Jps
8061 SecondaryNameNode

[hadoop@hadoop001 tmp]$ pwd
/tmp
[hadoop@hadoop001 tmp]$ cat hadoop-hadoop-datanode.pid 
7857
[hadoop@hadoop001 tmp]$ cat hadoop-hadoop-namenode.pid 
7748
[hadoop@hadoop001 tmp]$ cat hadoop-hadoop-secondarynamenode.pid
8061

观察hadoop停止的脚本,发现通过调用hadoop-daemons.sh停止脚本,
[hadoop@hadoop001 sbin]$ cat stop-dfs.sh
#---------------------------------------------------------
# namenodes
NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes)
echo "Stopping namenodes on [$NAMENODES]"
"$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
  --config "$HADOOP_CONF_DIR" \
  --hostnames "$NAMENODES" \
  --script "$bin/hdfs" stop namenode
#---------------------------------------------------------
# datanodes (using default slaves file)
if [ -n "$HADOOP_SECURE_DN_USER" ]; then
  echo \
    "Attempting to stop secure cluster, skipping datanodes. " \
    "Run stop-secure-dns.sh as root to complete shutdown."
else
  "$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
    --config "$HADOOP_CONF_DIR" \
    --script "$bin/hdfs" stop datanode
fi
#---------------------------------------------------------

# 进入查看hadoop-daemons.sh脚本
[hadoop@hadoop001 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

总结:
1、
hadoop停止使用kill掉cat `cat $pid`目录下动态pid,
 如果删除pid目录hadoop服务不会挂,但是调用dfs-stop.sh停止服务会出错(no namenode to stop ,no datanodeto stop)

 2、生产环境要修改hadoop的pid默认/tmp存储路径,其他文件也应该修改
/hadoop-2.8.1/etc/hadoop/hadoop-env.sh
export HADOOP_PID_DIR=/data/hadoop/tmp (mkdir and  chmod 777)
Linux环境下tmp的目录默认30清除
-- 其他文件也应该修改(待整理)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441024/viewspace-2154931/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31441024/viewspace-2154931/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值