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。下面是几种常用的提交命令参数:
  1. #本地运行,指定8个core
  2. ./bin/spark-submit \
  3. --class org.apache.spark.examples.SparkPi \
  4. --master local[] \
  5. /path/to/examples.jar \
  6. 100
  7. # 在 Spark standalone 集群并且是client模式
  8. ./bin/spark-submit \
  9. --class org.apache.spark.examples.SparkPi \
  10. --master spark://207.184.161.138:7077 \
  11. --executor-memory 20G \
  12. --total-executor-cores 100 \
  13. /path/to/examples.jar \
  14. 1000
  15. # 在 Spark standalone 集群并且是cluster模式 并指定supervise
  16. ./bin/spark-submit \
  17. --class org.apache.spark.examples.SparkPi \
  18. --master spark://207.184.161.138:7077 \
  19. --deploy-mode cluster \
  20. --supervise \
  21. --executor-memory 20G \
  22. --total-executor-cores 100 \
  23. /path/to/examples.jar \
  24. 1000
  25. # Yarn cluster模式export HADOOP_CONF_DIR=XXX
  26. ./bin/spark-submit\
  27. --class org.apache.spark.examples.SparkPi \
  28. --master yarn \
  29. --deploy-mode cluster \
  30. # can be client for client mode
  31. --executor-memory 20G \
  32. --num-executors 50 \
  33. /path/to/examples.jar \
  34. 1000
  35. # python提交到standalone的cluster模式
  36. ./bin/spark-submit \
  37. --master spark://207.184.161.138:7077 \
  38. examples/src/main/python/pi.py \
  39. 1000
  40. # mesos cluster模式,并指定supervise。
  41. ./bin/spark-submit \
  42. --class org.apache.spark.examples.SparkPi \
  43. --master mesos://207.184.161.138:7077 \
  44. --deploy-mode cluster \
  45. --supervise \
  46. --executor-memory 20G \
  47. --total-executor-cores 100 \
  48. http://path/to/examples.jar \
  49. 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提交模式的更多相关文章

  1. 【Spark篇】--Spark中Standalone的两种提交模式

    一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体         1.Standalon ...

  2. Spark Standalone 提交模式

    一.Client提交模式 提交命令: ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.Spar ...

  3. Spark学习之路(五)—— Spark运行模式与作业提交

    一.作业提交 1.1 spark-submit Spark所有模式均使用spark-submit命令提交作业,其格式如下: ./bin/spark-submit \ --class <main- ...

  4. Spark 系列(五)—— Spark 运行模式与作业提交

    一.作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ./bin/spark-submit \ --class <ma ...

  5. spark基于yarn的两种提交模式

    一.spark的三种提交模式 1.第一种,Spark内核架构,即standalone模式,基于Spark自己的Master-Worker集群. 2.第二种,基于YARN的yarn-cluster模式. ...

  6. 小记--------spark的两种提交模式

    spark的两种提交模式:yarn-cluster . yarn-client 图解

  7. 入门大数据---Spark部署模式与作业提交

    一.作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ./bin/spark-submit \ --class <ma ...

  8. Spark剖析-宽依赖与窄依赖、基于yarn的两种提交模式、sparkcontext原理剖析

    Spark剖析-宽依赖与窄依赖.基于yarn的两种提交模式.sparkcontext原理剖析 一.宽依赖与窄依赖 二.基于yarn的两种提交模式深度剖析 2.1 Standalne-client 2. ...

  9. 大数据学习day18----第三阶段spark01--------0.前言(分布式运算框架的核心思想,MR与Spark的比较,spark可以怎么运行,spark提交到spark集群的方式)1. spark(standalone模式)的安装 2. Spark各个角色的功能 3.SparkShell的使用,spark编程入门(wordcount案例)

    0.前言 0.1  分布式运算框架的核心思想(此处以MR运行在yarn上为例)  提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而 ...

随机推荐

  1. go语言之接口二

    接口查询: 先来看如下的结构.结构体File实现了Read,Writer,Seek,Close的方法 type File struct{ } func (f *File) Read(buf []byt ...

  2. IOS 代码风格习惯 总结1

    从我大三下学期开始工作开始, 几乎都是孤独的开发  因为身边开发ios 不多 ,除了学习开源的代码优秀风格技巧 剩下的 就是自己造, 所以 养成了 好多不好的习惯. 本知道面向对象的好处 ,但是实际开 ...

  3. [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. Python 核心编程 课后习题 第五章

    2. 操作符. (a) 写一个函数, 计算并返回两个数的乘积. (b) 写一段代码调用这个函数, 并显示它的结果. def multi(a,b): return a * b result = mult ...

  5. 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables

    相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际. Multiple Features 上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(fea ...

  6. hiho一下 第二十九周 最小生成树三·堆优化的Prim算法【14年寒假弄了好长时间没搞懂的prim优化:prim算法+堆优化 】

    题目1 : 最小生成树三·堆优化的Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生 ...

  7. 【转】Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式

    [转]Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式 博客分类: 企业应用面临的问题 java并发编程 Struts2的线程安全ThreadLocal模式St ...

  8. 在windows下进行linux开发:利用Vagrant+virtualbox

    1,介绍Vagrant 我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,redis等等.出于个人使用习惯,可能我们还是比较习惯用windows.虽然说在wind ...

  9. 英语发音规则---L字母

    英语发音规则---L字母 一.总结 一句话总结:[l]音在词首和词尾的发音不同,/l/+其它音节./l/+元音./l/+/j/称它为清晰/l/,发清晰/l/音时,在下一个音即将出出时舌头离开上齿龈,迅 ...

  10. linux使用酷我在线听音乐

    一般linux系统自带音频播放器只能管理本地音乐,无法在线听歌.在线音乐如百度音乐盒,下载歌曲需要登录,比较麻烦.在github里有一个酷我音乐的开源项目,可以安装在linux系统下.链接地址:htt ...