spark-submit 参数详解
2023-10-26 09:32:39
- 常用参数
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 集群。