Spark-submit
spark-submit
是 Apache Spark 提供的用于提交 Spark 应用程序到集群的命令行工具。
基本语法
spark-submit [options] <app-jar> [app-arguments]
常用参数说明
应用程序配置
--class <class-name>
: 指定应用程序的主类(对于 Java/Scala 程序)--name <app-name>
: 设置应用程序名称--jars <jars>
: 添加额外的 JAR 文件到 classpath(逗号分隔)--py-files <files>
: 为 Python 应用添加额外的文件(.zip, .egg, .py)--files <files>
: 将文件上传到执行器工作目录(逗号分隔)--conf <key>=<value>
: 设置任意 Spark 配置属性
资源分配
--driver-memory <memory>
: 设置 Driver 进程内存(如 1g)--executor-memory <memory>
: 设置每个 Executor 进程内存(如 1g)--executor-cores <num>
: 设置每个 Executor 使用的核心数--num-executors <num>
: 设置要启动的 Executor 数量--total-executor-cores <num>
: 设置所有 Executor 使用的总核心数
部署模式
-
--master <master-url>
: 指定集群管理器local
: 本地模式(单线程)local[K]
: 本地模式(K 个线程)local[*]
: 本地模式(使用所有核心)spark://host:port
: 连接到独立部署的 Spark 集群mesos://host:port
: 连接到 Mesos 集群yarn
: 连接到 YARN 集群k8s://https://host:port
: 连接到 Kubernetes 集群
-
--deploy-mode <mode>
: 部署模式(client 或 cluster)client
: Driver 在提交的客户端运行(默认)cluster
: Driver 在集群中运行
其他参数
--verbose
: 打印调试信息--version
: 打印 Spark 版本--help
: 显示帮助信息--supervise
: 如果失败则自动重启 Driver(仅限独立集群)--kill <submissionId>
: 终止指定应用程序--status <submissionId>
: 查询指定应用程序状态
使用示例
spark-submit --master yarn \
--deploy-mode client \
--driver-memory xG \
--executor-memory XG \
--class org.xx.xx \
--executor-cores x \
jar包
arg0 arg1
基本示例
# 本地运行(4个线程)
spark-submit --class org.apache.spark.examples.SparkPi \--master local[4] \/path/to/examples.jar \100# YARN 集群模式
spark-submit --class org.apache.spark.examples.SparkPi \--master yarn \--deploy-mode cluster \--executor-memory 2g \--num-executors 10 \/path/to/examples.jar \100
Python 应用示例
spark-submit --master spark://master:7077 \--executor-memory 1g \--py-files dependencies.zip \my_python_app.py \arg1 arg2