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