spark-submit提交模式

原创 2017年06月05日 10:16:07
spark基本的提交语句:
./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments]
参数的含义:
  • --class: 主函数所在的类。
  • --master: master的url,后面会解释 (e.g. spark://23.195.26.187:7077)
  • --deploy-mode: 部署driver在本地还是集群的一个work节点上,这也是client模式与cluster模式的区别。默认是client的模式。
  • --conf:用 key=value形式指定参数,如果包含空格那么要用双引号引起来,例如“key=value”
  • application-jar:jar包的路径.该路径必须在集群内全局可见。 例如: hdfs:// path 或者 file:// 这个path必须是所有节点都存在。.
  • application-arguments: 传递给main函数 参数,如java main方法中的args[].

常用 提交模式:
第一种:client模式
适合于有专门的getway机器与集群位于同一网段,这种模式下,spark-submit提交后driver直接启动昨晚集群的一个client。集群的输出会返回到client端的console上。这种模式很适合spark-shell。

第二种:如果提交的机器远离spark集群的worker机器,最好使用cluster模式,该模式能够减少网络传输的错误。目前standalone模式并不支持py的这种方式。

对于cluster的管理还有一些参数要指定,比如说在standalone模式下,指定--supervise参数可以在driver在返回码是非0的退出后重启driver。下面是几种常用的提交命令参数:
#本地运行,指定8个core./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[8] \ /path/to/examples.jar \ 100# 在 Spark standalone 集群并且是client模式./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://207.184.161.138:7077 \ --executor-memory 20G \ --total-executor-cores 100 \ /path/to/examples.jar \ 1000# 在 Spark standalone 集群并且是cluster模式 并指定supervise./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://207.184.161.138:7077 \ --deploy-mode cluster \ --supervise \ --executor-memory 20G \ --total-executor-cores 100 \ /path/to/examples.jar \ 1000# Yarn cluster模式export HADOOP_CONF_DIR=XXX./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ # can be client for client mode --executor-memory 20G \ --num-executors 50 \ /path/to/examples.jar \ 1000# python提交到standalone的cluster模式./bin/spark-submit \ --master spark://207.184.161.138:7077 \ examples/src/main/python/pi.py \ 1000# mesos cluster模式,并指定supervise。./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master mesos://207.184.161.138:7077 \ --deploy-mode cluster \ --supervise \ --executor-memory 20G \ --total-executor-cores 100 \ http://path/to/examples.jar \ 1000

关于master url的指定方法:
local 本地worker线程中运行spark,完全没有并行
local[K] 在本地work线程中启动K个线程运行spark
local[*] 启动与本地work机器的core个数想通的线程数来运行spark
spark://HOST:PORT 连接指定的standalone集群的master,默认7077端口
mesos://HOST:PORT 连接到mesos集群,默认5050端口。如果mesos使用了zk,那么也可以mesos://zk://.... 加 --deploy-mode cluster这种形式。
yarn 使用yarn的cluster或者yarn的client模式连接。取决于--deploy-mode参数,集群的位置需要使用hadoop的配置或者yarn的配置中去寻找。

关于默认配置文件:
spark-submit会默认读取conf/spark-defaults.conf 里面设置 配置。

依赖管理:
使用spark-submit来提交spark程序,spark app本身jar以及使用--jars指定的所有jar包都会自动被分发到集群。--jars参数必须使用逗号分隔。spark使用下面这些方法指定jar来分发jar:
  • file: - 绝对路径 file:/ dirver的http file server。executors会从该driver上拉取jar。
  • hdfs:http:https:ftp: -从这些位置拉取
  • local: - 从worke所在 每台机器本地拉取文件,适合于jar包很大的场景。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Spark-submit提交任务到集群

1 IDEA 打包 示例代码参考AMPCamp2015之SparkSQL,开发环境使用idea。首先需要将程序打包成jar 选择project structure --》artif...
  • Kinger0
  • Kinger0
  • 2015年06月19日 16:01
  • 61201

spark-submit使用及说明

一、命令  1.向spark standalone以client方式提交job。 ? 1 ./spark-submit --master s...
  • wwwxxdddx
  • wwwxxdddx
  • 2016年04月27日 15:56
  • 13787

spark-submit 运行参数问题记录

import org.apache.spark._ object WordCount {   def main(args: Array[String]) {     args.foreach(s =...
  • awewong
  • awewong
  • 2016年09月06日 11:36
  • 3774

spark-submit 提交参数总结

spark-submit --master yarn-cluster --num-executors 48 --driver-memory 2g --executor-memory 7g --ex...
  • qq_38336023
  • qq_38336023
  • 2018年01月03日 10:52
  • 44

spark-submit提交任务的方式

submit spark jobs
  • u010181136
  • u010181136
  • 2016年12月08日 10:47
  • 3172

[Spark]Spark 应用程序部署工具spark-submit

1. 简介Spark的bin目录中的spark-submit脚本用于启动集群上的应用程序。 可以通过统一的接口使用Spark所有支持的集群管理器,因此不必为每个集群管理器专门配置你的应用程序(It c...
  • SunnyYoona
  • SunnyYoona
  • 2017年02月16日 20:08
  • 1982

spark-submit的参数名称解析

执行时需要传入的参数说明 Usage: spark-submit [options] [app options] 参数名称 含义 --master...
  • shenxiaoming77
  • shenxiaoming77
  • 2017年01月23日 23:37
  • 2540

spark submit参数说明

参数名称 含义 --master MASTER_URL 可以是spark://host:port, mesos://host:port, ...
  • u010064842
  • u010064842
  • 2015年07月24日 16:24
  • 1351

Spark1.0.0 应用程序部署工具spark-submit

随着Spark的应用越来越广泛,对支持多资源管理器应用程序部署工具的需求也越来越迫切。随着Spark1.0.0的出现,这个问题得到了逐步的改善。从Spark1.0.0开始,Spark提供了一个容易上手...
  • book_mmicky
  • book_mmicky
  • 2014年05月13日 15:24
  • 17380

Spark中文手册10:spark部署:提交应用程序及独立部署模式

问题导读 1.spark-submit各个参数的含义是什么? 2.集群启动都包含哪些脚本? 3.如何实现连接一个应用程序到集群中? Spark中文手册-编程指南 Spar...
  • ichsonx
  • ichsonx
  • 2015年03月24日 17:00
  • 10096
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark-submit提交模式
举报原因:
原因补充:

(最多只允许输入30个字)