ITPub博客

首页 > 大数据 > Hadoop > HDFS的PID整理

HDFS的PID整理

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


为什么说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博客 ” ,链接:https://blog.itpub.net/31441024/viewspace-2154931/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Hadoop帮助命令一
请登录后发表评论 登录
全部评论

注册时间:2017-03-05

  • 博文量
    70
  • 访问量
    97993