[spark]spark如何管理集群(master和workers)

31 阅读1分钟

Spark 启动脚本的关系

Spark 的启动脚本

在 Spark 的 sbin/ 目录中,主要有以下脚本:

  1. start-master.sh - 启动 Spark standalone 集群的 Master 节点
  2. start-workers.sh / start-slaves.sh - 启动所有 Worker 节点
  3. start-all.sh - 同时启动 Master 和所有 Workers

是的,start-all.sh 本质上就是依次调用 start-master.shstart-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

重要注意事项

环境配置

在使用这些脚本前,需要正确配置:

  1. SPARK_HOME 环境变量
  2. conf/slaves 文件 - 列出所有 Worker 节点的主机名
  3. 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 简化操作。