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[] \
/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提交模式的更多相关文章

  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. apache虚拟主机配置: 设置二级目录访问跳转

    <VirtualHost *:> DocumentRoot "d:/www/abc" ServerName www.abc.com Alias /course &quo ...

  2. NOIP考前划水

    NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...

  3. 阿里云centos7搭建php+nginx环境

    阿里云Centos搭建lnmp(php7.1+nginx+mysql5.7) https://jingyan.baidu.com/article/215817f7a10bfb1eda14238b.ht ...

  4. 小程序连接百度ai

    function getTextFromImage(res) { var access_token = '24.c649256d2e*****0.282335-11449805'; var url = ...

  5. PAT天梯赛 L2-019. 悄悄关注 【STL】

    题目链接 https://www.patest.cn/contests/gplt/L2-019 思路 将已关注的人 用 MAP存起来 然后将点赞的用户中 没有关注的 用 VECTOR 存下来 并且求出 ...

  6. 每天一个Linux命令(11)nl命令

    nl命令读取 file 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出. 其默认的结果与cat -n有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 ...

  7. ubuntu android studio 编译及运行错误Error retrieving parent for item: No resource found that matches the given name

    安装好android studio并且安装其它需要的SDK或组件后,根据向导生成新的项目, 编译或运行时可能会出现下面的错误: Error:Error retrieving parent for it ...

  8. [原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录

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

  9. P4844 LJJ爱数数

    题目 P4844 LJJ爱数数 本想找到莫比乌斯反演水题练练,结果直接用了两个多小时才做完 做法 \(\sum\limits_{a=1}^n\sum\limits_{b=1}^n\sum\limits ...

  10. 导出数据到表格PHP

    导出数据到表格 public function excel(){ $filename = '导出表格'; $header = ['编号','名称']; $index = ['id','name']; ...