执行stop-dfs.sh脚本,出现以下提示:

Stopping namenodes on [Master]
Master: no namenode to stop
SlaveA: no datanode to stop
SlaveB: no datanode to stop
SlaveC: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: no secondarynamenode to stop

原因:通过查看hadoop-daemon.sh脚本源码发现是通过Kill pid文件里面的值来停止hadoop服务,pid文件默认路径是/tmp。
查看pid文件的值发现与jps显示的进程pid不一致,导致无法Stop集群。

解决:通过修改对应的pid文件的值。可以指定${HADOOP_PID_DIR}的路径,文件名格式:hadoop-hadoop运行用户名-namenode.pid