spark-submit 命令使用详解
spark-submit 用户打包 Spark 应用程序并部署到 Spark 支持的集群管理气上,命令语法如下:
spark-submit [options] <python file> [app arguments]
app arguments 是传递给应用程序的参数,常用的命令行参数如下所示:
- –master: 设置主节点 URL 的参数。支持:
- local: 本地机器。
- spark://host:port:远程 Spark 单机集群。
- yarn:yarn 集群
- –deploy-mode:允许选择是否在本地(使用 client 选项)启动 Spark 驱动程序,或者在集群内(使用 cluster 选项)的其中一台工作机器上启动。默认值是 client。
- –name:应用程序名称,也可在程序内设置。
- –py-files:.py, .egg 或者 .zip 文件的逗号分隔列表,包括 Python 应用程序。这些文件将分发给每个执行节点。
- –files:逗号分隔的文件列表,这些文件将分发给每个执行节点。
- –conf:动态地改变应用程序的配置。
- –driver-memory:指定应用程序在驱动节点上分配多少内存的参数,类似与 10000M, 2G。默认值是 1024M。
- –executor-memory:指定每个执行节点上为应用程序分配的内存,默认 1G。
- –num-executors:指定执行器节点数。
- –help:展示帮助信息和退出。
以下均是在 yarn 集群提交的任务。
1、默认设置: 会将所有日志和系统输出结果输出到 spark-submit 的 client 上
spark-submit --master yarn code1.py
code1.py
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Test_Code1').enableHiveSupport().getOrCreate()
spark.sql("select count(*) from default.test_table").show()
2、设置 Executor 的日志级别,Executor 执行的细节(WARN 以下级别的日志)不会输出到 client 中
spark-submit --master yarn code2.py
code2.py
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Test_Code1'