概述
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.
版权声明:《 Spark 提交任务命令 》为明妃原创文章,转载请注明出处!
最后编辑:2020-3-26 14:03:44