在我的情况下,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没有停止,任何人都可以帮助我。
答案 0 :(得分:1)
当/tmp/*.pid文件中保存的pid与namenode的实际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。之后没有出现这个问题。