Spark 提交任务命令

概述

spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行。

最简单提交命令

本地模式提交

 spark-submit \
--class 类名 jar包 参数

不同搭建的提交方式

主要模板

 spark-submit \
 --class 主类 \
--master 提交地址 \
--deploy-mode 提交方式 \
其他参数 \
运行主程序 程序参数

自生调度器管理

俗称的集群模式,一个 master ,多个 worker,这时是 Spark 自身的资源调度器管理。

spark-submit \
--class 主类 \
--master spark://master:6066 \
--deploy-mode cluster \
其他参数 \
运行主程序 程序参数

提交到 Yarn 管理

spark-submit \
--class 主类 \
--master spark://master:6066 \
--deploy-mode yarn \
其他参数 \
运行主程序 程序参数

参数详解

--class: 执行主类,Python 不需要

--master:  提交的地址:spark://master:6066、yarn、local

--deploy-mode: 默认 cliebt,cluster

--name: 程序名

--driver-memory: driver 内存,默认为 1G

--driver-cores : driver CPU数,默认 1 核。

--executor-memory: 每个 executor 的内存,默认是 1G

--executor-core: 每个 executor 的核数。在yarn或者standalone下使用

--total-executor-cores: 所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用

--num-executors:启动的 executor 数量。默认为2。在 yarn 下使用

Spark 集群例子

如果有些内存核心不指定,就不能很好的利用集群的算力

spark-submit \
--master spark://node1:6066 \
--deploy-mode cluster \
--driver-memory 14g \
--driver-cores 8 \
--executor-memory 14g \
--executor-cores 4 \
--total-executor-cores 24  \
--class two /root/jar/bigdataboy.jar obs://bigdata/bigdataboy

Yarn 提交例子

 spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-cores 5 \
--driver-memory 10g \
--executor-memory 25g \
--executor-cores 4 \
--class 类名 Jar包 参数

全部参数

  --master 提交地址            spark://host:port,
                               mesos://host:port,
                               yarn,
                               k8s://https://host:port,
                               默认: local[*]

  --deploy-mode 提交模式        默认:client(单机),cluster(集群)

  --class 程序主类              Java & Scala 程序

  --name 程序名字               application 的名字

  --jars JARS                   程序使用的 Jar包 路径,用 逗号 分割

  --packages maven的Jar包名称   需要与 --repositories 一起使用
  --repositories               需要与 --package 一使用( --packages  mysql:mysql-connector-java:5.1.27 --repositories http://maven.aliyun.com/nexus/content/groups/public/)

  --exclude-packages           为了避免冲突 而指定不包含的 package

  --py-files Python 程序的路径  支持者 .zip, .egg, or .py  压缩文件或者文件

  --files FILES               Comma-separated list of files to be placed in the working
                              directory of each executor. File paths of these files
                              in executors can be accessed via SparkFiles.get(fileName).

  --conf PROP=VALUE           额外的配置

  --properties-file FILE      加载配置路径,默认 conf/spark-defaults.conf.

  --driver-memory MEM         Memory for driver (e.g. 1000M, 2G) (Default: 1024M).

  --driver-java-options       传递给 driver 的额外Java选项。

  --driver-library-path       传递给 driver 的额外库路径项。

  --driver-class-path         driver的类路径,用--jars 添加的jar包会自动包含在类路径里

  --executor-memory MEM       Memory per executor (e.g. 1000M, 2G) (Default: 1G).

  --help, -h                  显示此帮助消息并退出。

  --verbose, -v                打印额外的调试输出。

  --version,                  打印当前 Spark 的版本

仅支持 Cluster 部署模式:

  --driver-cores NUM          driver 使用的核心数,仅在集群模式下使用 (Default: 1).

仅支持 standalone 、Mesos 的集群部署模式 :

  --supervise                 如果给定,则在失败时重新启动驱动程序。
  --kill SUBMISSION_ID        如果给定,则杀死指定的驱动程序。

  --status SUBMISSION_ID      如果给定,请求指定的驱动程序的状态。

仅支持 standalone and Mesos 部署模式:
  --total-executor-cores NUM  所有 executors 的核心总数。 

仅支持 standalone and YARN 部署模式:
  --executor-cores NUM        每个 executors 的核心数。(Default: 1 in YARN mode,或者 standalone 模式 worker的所有核数。)

仅支持 YARN 部署模式:
  --queue QUEUE_NAME          Yarn 提交的对列名称 (Default: "default").

  --num-executors NUM         executors 启动的数量 (Default: 2).

  --archives ARCHIVES         Comma separated list of archives to be extracted into the
                              working directory of each executor.

  --principal PRINCIPAL       Principal to be used to login to KDC, while running on
                              secure HDFS.

  --keytab KEYTAB             The full path to the file that contains the keytab for the
                              principal specified above. This keytab will be copied to
                              the node running the Application Master via the Secure
                              Distributed Cache, for renewing the login tickets and the
                              delegation tokens periodically.
发表评论 / Comment

用心评论~