Question
前段时间Spark遇到一个Spark集群无法停止的问题,操作为./stop-all.sh
no org.apache.spark.deploy.master.Master to stop
Solution
因为Spark程序在启动后会在/tmp目录创建临时文件/tmp/spark-cdahdp-org.apache.spark.deploy.master.Master-1.pid /tmp/spark-cdahdp-org.apache.spark.deploy.worker.Worker-1.pid。
在关闭的时候会去寻找是否还有这类的文件,若没有则会报以上的错误。若有,停止pid,并删除相关.pid文件。
但是在实际的场景,常常/tmp目录是会定时清空的,所以会导致上面的错误。进程仍然存在,但是却无法用stop-all.sh脚本关闭的情况发生。
解决办法:
在/conf目录设置spark_env.sh文件加上export SPARK_PID_DIR=/home/ap/spark/app/pids。