Spark 启动脚本的关系
Spark 的启动脚本
在 Spark 的 sbin/ 目录中,主要有以下脚本:
start-master.sh- 启动 Spark standalone 集群的 Master 节点start-workers.sh/start-slaves.sh- 启动所有Worker 节点start-all.sh- 同时启动 Master 和所有 Workers
是的,start-all.sh 本质上就是依次调用 start-master.sh 和 start-workers.sh。
实际脚本内容
如果你查看 start-all.sh 的源码,会看到类似这样的结构:
# 简化版示意
"$sbin"/start-master.sh
"$sbin"/start-workers.sh
正确使用方式
1. 一次性启动整个集群
# 在 Master 节点上执行
$SPARK_HOME/sbin/start-all.sh
2. 分开启动
# 先启动 Master
$SPARK_HOME/sbin/start-master.sh
# 再启动 Workers
$SPARK_HOME/sbin/start-workers.sh
重要注意事项
环境配置
在使用这些脚本前,需要正确配置:
SPARK_HOME环境变量conf/slaves文件 - 列出所有 Worker 节点的主机名- SSH 免密登录 - Master 需要能免密登录到所有 Worker
Spark 和 Hadoop 的区别
注意:Hadoop 也有 start-all.sh,但是用来启动 Hadoop 的 HDFS 和 YARN。不要混淆两个系统的脚本。
常用组合命令
# 查看集群状态
$SPARK_HOME/sbin/start-all.sh
$SPARK_HOME/sbin/stop-all.sh
# 单独管理 Master
$SPARK_HOME/sbin/start-master.sh
$SPARK_HOME/sbin/stop-master.sh
# 单独管理 Workers
$SPARK_HOME/sbin/start-workers.sh
$SPARK_HOME/sbin/stop-workers.sh
总结
你的理解是正确的:start-all.sh = start-master.sh + start-workers.sh。不过在实际使用中,建议先分开测试各个组件的启动,确保每个部分都正常工作后再使用 start-all.sh 简化操作。