Question
前段时间Spark遇到一个Spark集群无法停止的问题,操作为./stop-all.sh
no org.apache.spark.deploy.master.Master to stop
no org.apache.spark.deploy.worker.Worker 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
。
Reference
[1]. Spark集群无法停止的原因分析和解决
[2] Spark集群无法停止的原因分析和解决