前言:启动spark集群一段时间后,无法在正常的关闭集群
-
原因: Spark的停止,是通过一些.pid文件来操作的。
-
查看spark-daemon.sh文件,其中一行:$SPARK_PID_DIRThe pid files are strored
. /tmp by default . -
$SPARK_PID_DIR
存放的pid文件中,就是要停止的进程的pid,$SPARK_PID_DIR
默认是在系统的/tmp目录。 -
系统每隔一段时间就会清除/tmp目录下的内容。到/tmp下查看,如果没有Spark相关.pid文件,这就是导致Spark集群无法停止的原因。
解决方法
- 在集群所有节点spark的conf/spark-env.sh文件中增加如下配置:
export SPARK_PID_DIR=/data/spark/pids
重启spark集群即可解决。