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