停止hadoop2.2.0时提示no namenode to stop

来源:互联网 发布:mac定妆喷雾怎么用 编辑:程序博客网 时间:2024/05/22 09:42

运行命令stop-all.sh,停止hadoop时提示:

[15:36:57][hadoop@iZ94ak2tictZ ~]# stop-dfs.sh [15:36:58]Stopping namenodes on [master][15:36:58]master: no namenode to stop[15:36:58]slave1: no datanode to stop[15:36:58]slave2: no datanode to stop[15:37:00]Stopping secondary namenodes [0.0.0.0][15:37:00]0.0.0.0: no secondarynamenode to stop

原因:

Hadoop在/tmp目录下保存namenode、datanode 的进程,而/tmp会被系统定期清理,所以stop-all.sh或stop-dfs.sh的时候就有可能找不到namenode、datanode进程pid。


解决方法:

1、 在namenode的机器运行命令jps , 找到namenode和secondnamenode等进程id。

    例如: 

28867 HMaster28366 ResourceManager29313 JobHistoryServer29812 Jps2257 jar28073 NameNode

2、在/tmp目录下创建文件

hadoop-运行hadoop的用户-secondarynamenode.pid
hadoop-运行hadoop的用户-namenode.pid
hadoop-运行hadoop的用户-resourcemanager.pid

文件内容是进程id,例如:hadoop-hadoop-namenode.pid的内容是

<pre name="code" class="java">28073 

3、同样在datanode的机器执行上面两个步骤,不同的是创建文件【hadoop-运行hadoop的用户-datanode.pid】,内容是datanode的进程id,例如hadoop-root-datanode.pid的内容是13509


4、重新执行: stop-all.sh 或者 stop-dfs.sh。(如果还有残留的线程,只能kill -9 了)

5、修改文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh:

export HADOOP_PID_DIR=hadoop相关进程的id存放目录
例如:export HADOOP_PID_DIR=/usr/local/hadoop-2.2.0/pid


6、启动hadoop。




0 0