关闭Hadoop集群时提示no xxx to stop
今天迁移机器的时候,需要手动关闭所有的机器。那么关机之前当然是要先安全的关闭hadoop的相关服务,但是由于这个集群不是我搭建的,发现有些机器在关闭集群的时候出现
no xxx to stop
,就我发现的来说有namenode,journalnode,jobtracker这三个。
问题的原因
Hadoop在stop的时候依据的是启动是保存到pid文件的pid.而默认的进程号保存在/tmp下,Linux 默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉pid文件后,namenode自然就找不到datanode上的这个进程了。(不同的进程的进程id文件名会有变化)
解决办法
临时解决
针对这次集群关闭,我们需要做的是:首先保证集群没有负载,然后去手动杀死datanode/journalnode/zkfc最后去杀死namenode(注意顺序)
永久解决
在配置文件hadoop_env.sh
中配置export HADOOP_PID_DIR
可以解决这个问题。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment