停止hadoop2.2.0时提示no namenode to stop
运行命令stop-all.sh,停止hadoop时提示:# stop-dfs.sh
Stopping namenodes on
master: no namenode to stop
slave1: no datanode to stop
slave2: no datanode to stop
Stopping secondary namenodes
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 HMaster
28366 ResourceManager
29313 JobHistoryServer
29812 Jps
2257 jar
28073 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。
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]