无法停止hadoop集群(stop-all.sh)

执行 ./bin/stop-all.sh 脚本一直提示没有可停止的namenode、datanode、secondarynode。可是输入 jps 命令,发现hadoop 已经启动。

[root@xxxxxx src]# bash hadoop-2.6.5/sbin/stop-all.sh 
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [master]
master: no namenode to stop
master: no datanode to stop
slave1: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: no secondarynamenode to stop
stopping yarn daemons
no resourcemanager to stop
master: no nodemanager to stop
slave1: no nodemanager to stop
no proxyserver to stop

[root@xxxxxx src]# jps
27634 JobHistoryServer
16372 NameNode
27444 Master
27156 ResourceManager
2405 DataNode
2700 NodeManager
16541 SecondaryNameNode
11502 Jps

问 题的原因是:hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop- hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。

解决办法

1、jps查看所有进程的pid,手动杀死进程 kill -9 pid,多个节点都需要操作!
为了避免下次也出现问题,在配置文件中$HADOOP_HOME/conf/hadoop-env.sh中添加如下,

export HADOOP_PID_DIR=${HADOOP_HOME}/pids

在这里插入图片描述

2、重启Hadoop集群,即可。

reference:
https://blog.csdn.net/silentwolfyh/article/details/51505804
https://blog.csdn.net/zhoujianfeng3/article/details/38382195


END

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值