在我的案例中,jobtracker 和 namenode 已启动,但无法通过运行 stop-all.sh 命令停止它
当我键入 jps 时得到以下消息:
[root@iq hadoop]# jps
25258 JobTracker
8082 SecondaryNameNode
7944 DataNode
8404 Jps
8321 TaskTracker
24237 NameNode
但是当我尝试通过在命令行上运行 stop-all.sh 来停止它时,收到以下消息:
[root@iq bin]# bash stop-all.sh
no jobtracker to stop
localhost: stopping tasktracker
no namenode to stop
localhost: stopping datanode
localhost: stopping secondarynamenode
当我通过在命令行中输入 jps 再次检查正在运行的作业时,得到以下信息:
[root@iq bin]# jps
11823 Jps
25258 JobTracker
24237 NameNode
JobTracker 和 NameNode 好像都没有停止,谁能帮帮我。
最佳答案
当保存在/tmp/*.pid 文件中的 pid 与名称节点的实际 pid 不匹配时,hadoop 1.1.2 会发生这种情况。
我打开stop-dfs.sh,好像是这样调用的:
/opt/hadoop-1.1.2/bin/hadoop-daemon.sh --config /opt/hadoop-1.1.2/conf/ stop namenode
这个也失败了。然后在检查代码时,似乎脚本本身正在执行 hadoop 守护程序的 kill -9。
手动终止守护进程任务后(不需要信号 9)- 我能够使用 stop-dfs.sh 脚本正确启动和停止 dfs。后来就没有出现这个问题了。
关于hadoop - 运行命令 stop-all.sh 时没有 JobTracker 和 NameNode 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460658/