运行命令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 HMaster
28366 ResourceManager
29313 JobHistoryServer
29812 Jps
2257 jar
28073 NameNode2、在/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。
在尝试使用stop-all.sh命令停止Hadoop时遇到'no namenode to stop'错误,原因是Hadoop在/tmp目录下的进程被系统清理。解决方法包括:通过jps找到进程ID,创建相应PID文件,修改hadoop-env.sh配置,并在必要时手动kill剩余进程。完成这些步骤后,可以重新启动Hadoop。

431

被折叠的 条评论
为什么被折叠?



