前言
在第五篇文章 Yarn Client 模式提交流程(五) 中,我们分析了 Yarn Client 模式的完整提交流程。本文将继续分析 Spark 的另一种常用部署模式——Standalone Client 模式的提交流程。
Standalone 模式是 Spark 自带的集群管理器,不依赖 YARN、Mesos 等外部资源调度系统。其架构包含 Master(集群管理器)和 Worker(工作节点)两个角色,Master 负责资源调度,Worker 负责执行计算任务。
关于 Standalone 集群的搭建与配置,可参考之前的文章 Spark Standalone 集群配置。Master 和 Worker 的启动源码分析将在后续文章中详细介绍。
版本
Spark 3.2.3
Standalone Client 模式概述
Standalone Client 模式下,Driver 运行在提交应用的客户端机器上,向 Master 注册 Application,Master 调度 Worker 启动 Executor。
与 Yarn Client 的直观对比:
Yarn Client 模式中的 ResourceManager + NodeManager 对应到 Standalone 模式中的 Master + Worker。区别在于 Standalone 模式是 Spark 自带的简易调度系统,功能比 YARN 精简,但启动和调试更加方便。
| 模式 | Master 地址 | childMainClass | Driver 位置 |
|---|---|---|---|
| Standalone Client | spark://host:port |
args.mainClass(用户主类) |
客户端 |
| Standalone Cluster | spark://host:port |
SparkApplication 或 Wrapper |
集群 |
| Yarn Client | yarn |
args.mainClass(用户主类) |
客户端 |
1 | // 提交命令示例 |