在使用spark-submit提交Spark任务一般有以下参数:
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
其中deploy-mode是针对集群而言的,是指集群部署的模式,根据Driver主进程放在哪分为两种方式:client和cluster,默认是client
一、client mode
Master节点就是你用来提交任务,即执行bin/spark-submit命令所在的那个节点;Driver进程就是开始执行你Spark程序的那个Main函数,虽然我这里边画的Driver进程在Master节点上,但注意Driver进程不一定在Master节点上,它可以在任何节点;Worker就是Slave节点,Executor进程必然在Worker节点上,用来进行实际的计算
1、client mode下Driver进程运行在Master节点上,不在Worker节点上,所以相对于参与实际计算的Worker集群而言,Driver就相当于是一个第三方的“client”
2、正由于Driver进程不在Worker节点上,所以其是独立的,不会消耗Worker集群的资源
3、client mode下Master和Worker节点必须处于同一片局域网内,因为Drive要和Executorr通信,例如Drive需要将Jar包通过Netty HTTP分发到Executor,Driver要给Executor分配任务等
4、client mode下没有监督重启机制,Driver进程如果挂了,需要额外的程序重启
二、cluster mode
1、Driver程序在worker集群中某个节点,而非Master节点,但是这个节点由Master指定
2、Driver程序占据Worker的资源
3、cluster mode下Master可以使用–supervise对Driver进行监控,如果Driver挂了可以自动重启
4、cluster mode下Master节点和Worker节点一般不在同一局域网,因此就无法将Jar包分发到各个Worker,所以cluster mode要求必须提前把Jar包放到各个Worker几点对应的目录下面
是选择client mode还是cluster mode呢?
一般来说,如果提交任务的节点(即Master)和Worker集群在同一个网络内,此时client mode比较合适
如果提交任务的节点和Worker集群相隔比较远,就会采用cluster mode来最小化Driver和Executor之间的网络延迟
When run SparkSubmit --class [mainClass], SparkSubmit will call a childMainClass which is
1. client mode, childMainClass = mainClass
2. standalone cluster mde, childMainClass = org.apache.spark.deploy.Client
3. yarn cluster mode, childMainClass = org.apache.spark.deploy.yarn.Client
The childMainClass is a wrapper of mainClass. The childMainClass will be called in SparkSubmit, and if cluster mode, the childMainClass will talk to the the cluster and launch a process on one woker to run the mainClass.
ps. use "spark-submit -v" to print debug infos.
Yarn client: spark-submit -v --class "org.apache.spark.examples.JavaWordCount" --master yarn JavaWordCount.jar
childMainclass: org.apache.spark.examples.JavaWordCount
Yarn cluster: spark-submit -v --class "org.apache.spark.examples.JavaWordCount" --master yarn-cluster JavaWordCount.jar
childMainclass: org.apache.spark.deploy.yarn.Client
Standalone client: spark-submit -v --class "org.apache.spark.examples.JavaWordCount" --master spark://aa01:7077 JavaWordCount.jar
childMainclass: org.apache.spark.examples.JavaWordCount
Stanalone cluster: spark-submit -v --class "org.apache.spark.examples.JavaWordCount" --master spark://aa01:7077 --deploy-mode cluster JavaWordCount.jar
childMainclass: org.apache.spark.deploy.rest.RestSubmissionClient (if rest, else org.apache.spark.deploy.Client)
- 大小: 23.7 KB
- 大小: 26.5 KB
分享到:
相关推荐
该资源主要是描述spark运行模式中的spark standalone模式和spark on yarn模式。详细内容可参见本人博客
1 Spark运行模式 8 2 Spark环境搭建 8 2.1Scala的安装 8 2.2Spark的单节点配置 9 2.3Spark-Standalone集群配置 9 2.4Spark-on-Yarn模式配置 12 2.5Spark-on-Mesos模式配置 13 2.6Hive-on-Spark配置 13 第三章 Spark...
第5章 Spark运行模式深入解析 第6章 Spark内核解析 第7章 GraphX大规模图计算与图挖掘实战 第8章 Spark SQL原理与实战 第9章 Machine Learning on Spark 第10章 Tachyon文件系统 第11章 Spark Streaming原理与实战 ...
描述了spark1.2.1在standalone集群模式和on yarn集群模式下的部署与运行方式。
在自己的机器上配置spark的本地开发模式,可以用来测试spark代码是否正确,如果没问题,可以提交到spark集群上去运行,免去每次都要打包放到集群上去测试的麻烦。因为在网络上没找到合适的资源可以快速构建,所以就...
springboot整合spark连接远程服务计算框架使用standAlone模式
大主题:概述、Spark RDD定义与特性、Spark Streaming概念及特性、Spark DataSet定义及内部机制、Spark作业执行过程、Spark运行模式、Spark环境搭建、Scala 基础语法。适合初学者。
大数据 大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分布式文件存储系统 —— ...Spark 运行模式与作业提交 Spark 累加器与广播变量 基于 Zookeeper 搭建 Spark 高可用集群 Spark SQL :
Spark支持独立部署模式,包括一个Spark master进程和多个 Spark worker进程.独立部署模式可以运行在单机上作为测试之用,也可以部署在集群上.如果你打算部署在集群上,可以使用我们提供的部署脚本启动一个集群。
Spark运行模式与作业提交 Spark 累加器与广播信号 基于Zookeeper搭建Spark高可用服务 火花 SQL: 日期帧和数据集 结构化API的基本使用 Spark SQL 外部数据源 Spark SQL常用聚合函数 Spark SQL JOIN 操作 火花流:
一个完善的Spark Streaming二次封装开源框架,包含:实时流任务调度、...基于Spark Streaming的大数据实时流计算平台和框架(包括:调度平台,开发框架,开发demo),并且是基于运行在yarn模式运行的spark streaming
什么是Spark? Spark特点?Hadoop与Spark的对比?Spark运行模式?Spark安装部署 standalone集群模式启动
1. 解压Spark安装包 2. 配置Spark环境变量 2. 修改 spark-env.sh 文件,完成以下设置: 1. 设置运行master进程的节点, e
windows中使用yarn-cluster模式提交spark任务,百度找不着的啦,看我这里。另外spark的版本要使用正确哦 更简单的方式参考: https://blog.csdn.net/u013314600/article/details/96313579
第 2 章 Spark 运行模式1.官网地址2.文档查看地址3.下载地址尚硅谷大数据技术之 Spark 基础解析更多 Java –大数据 –前端 –python
包含spark三种运行模式所有相关运行指令 需要更多资源请关注。 个人github: https://github.com/huangyueranbbc
(1)执行脚本提交任务,实际是启动一个SparkSubmit的JVM进程 (2)SparkSubmit类中的main方法反射调用Client的main方法 (3
一、实验目的 1. 理解Spark编程思想; 2. 学会在Spark Shell中编写Scala程序; 3. 学会在Spark Shell中运行Scala程序。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 ...(二)spark运行wordcount程序
Spark的模式挖掘—FPGrowth算法-内含源码以及设计说明书(可以自己运行复现).zip
Spark 包含多种运行模式,可使用单机模式,也可以使用分布式模式。为简单起见,本节采用单机模式运行 Spark。 无论采用哪种模式,只要启动完成后,就初始化了一个 SparkContext 对象(SC),同时也创建了一个 ...