返回

spark-submit 参数详解

开发工具

  1. 常用参数

1.1 --master

指定 Spark 集群的 master URL。master URL 可以是以下几种形式:

  • local:在本地计算机上运行 Spark 作业。
  • local[n]:在本地计算机上运行 Spark 作业,并使用 n 个线程。
  • yarn:在 YARN 集群上运行 Spark 作业。
  • spark://::在独立的 Spark 集群上运行 Spark 作业,其中 是 Spark 集群的 master 节点的 hostname, 是 Spark 集群的 master 节点的端口号。

1.2 --deploy-mode

指定 Spark 作业的部署模式。部署模式可以是以下几种形式:

  • client:将 Spark 作业提交到集群后,Driver 端在本地计算机上启动。
  • cluster:Driver 端在 Yarn 分配的 Application Master 上启动,与其他 Executor 交互。

1.3 --class

指定 Spark 作业的主类。主类是 Spark 作业的入口点,它必须继承 org.apache.spark.SparkContext 类。

1.4 --jar

指定 Spark 作业的 JAR 包。JAR 包是 Spark 作业的代码和依赖包的集合。

1.5 --conf

设置 Spark 作业的配置参数。配置参数的格式为 key=value,其中 key 是配置参数的名称,value 是配置参数的值。

1.6 --files

指定 Spark 作业需要在每个 Executor 上分发的文件。文件可以是本地文件或 HDFS 文件。

1.7 --archives

指定 Spark 作业需要在每个 Executor 上分发的归档文件。归档文件可以是本地文件或 HDFS 文件。

2. 高级参数

2.1 --driver-memory

指定 Driver 端的内存大小。内存大小可以是数字加单位,例如 1g、2g、1024m 等。

2.2 --executor-memory

指定 Executor 端的内存大小。内存大小可以是数字加单位,例如 1g、2g、1024m 等。

2.3 --executor-cores

指定每个 Executor 端的 CPU 核心数。

2.4 --num-executors

指定 Spark 作业要使用的 Executor 的数量。

2.5 --driver-cores

指定 Driver 端的 CPU 核心数。

3. 其他参数

3.1 --verbose

启用详细日志记录。

3.2 --help

显示 spark-submit 命令的帮助信息。

3.3 --version

显示 spark-submit 命令的版本信息。

4. 示例

以下是一个使用 spark-submit 命令提交 Spark 作业的示例:

spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi \
--jar /path/to/spark-examples.jar \
--conf spark.executor.memory=1g \
--conf spark.num.executors=10 \
--files /path/to/data.txt \
--archives /path/to/my.zip

这个命令将在 YARN 集群上提交一个 Spark 作业,该作业使用 cluster 部署模式,主类是 org.apache.spark.examples.SparkPi,JAR 包是 /path/to/spark-examples.jar,每个 Executor 端的内存大小是 1g,Executor 的数量是 10,需要分发到每个 Executor 上的文件是 /path/to/data.txt,需要分发到每个 Executor 上的归档文件是 /path/to/my.zip。

5. 总结

spark-submit 命令是 Spark 集群作业的命令行接口,用于在 Spark 集群上提交和运行应用程序。通过本文对 spark-submit 参数的详细讲解,希望能够帮助您更好地使用 Spark 集群。