`
gaojingsong
  • 浏览: 1182726 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Spark运行模式】

阅读更多

在使用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之间的网络延迟

 

Spark运行模式:cluster与client

 

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
0
0
分享到:
评论

相关推荐

    Spark的运行模式.xmind

    该资源主要是描述spark运行模式中的spark standalone模式和spark on yarn模式。详细内容可参见本人博客

    Spark-Core学习知识笔记整理

    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...

    spark1.2.1常用模式部署运行

    Spark 1.2.1常用模式部署运行 ...Spark 1.2.1 是一个功能强大且灵活的数据处理框架,支持多种部署和运行模式。通过了解 Spark 的部署和运行方式,可以更好地利用 Spark 的强大功能,完成复杂的数据处理任务。

    spark运行原理解析

    ### Spark运行原理解析 #### 一、Spark简介与核心价值 Spark是一个开源的大数据处理框架,它提供了统一的数据处理接口,能够支持多种类型的数据处理任务,如批处理、流处理、交互式查询以及机器学习等。Spark的...

    Spark & SparkSql编程学习资料

    第5章 Spark运行模式深入解析 第6章 Spark内核解析 第7章 GraphX大规模图计算与图挖掘实战 第8章 Spark SQL原理与实战 第9章 Machine Learning on Spark 第10章 Tachyon文件系统 第11章 Spark Streaming原理与实战 ...

    Spark介绍.docx

    Spark运行模式有本地模式、集群模式(standalone、Mesos、YARN)等。在提交任务时,可以选择client或cluster模式,client模式下,驱动程序运行在提交任务的工作站上,而cluster模式下,驱动程序由集群管理器在集群...

    SparkDemo12

    4. **Spark运行模式** - **Local**:在本地单机模式运行,适用于开发和测试。 - **Standalone**:Spark自有的集群管理器。 - **YARN**:运行在Hadoop YARN上,利用其资源管理。 - **Mesos**:可在Mesos集群中...

    Spark技术内幕深入解析Spark内核架构设计与实现原理.pdf

    4. **Spark运行模式**:Spark支持Local、Standalone、Hadoop YARN、Apache Mesos等运行模式,适应不同的集群环境需求。 5. **Spark Core**:Spark Core是Spark的基础模块,提供了RDD的创建、转换和行动操作,以及...

    spark-1.6.1-bin-hadoop2.6.zip (缺spark-examples-1.6.1-hadoop2.6.0.jar)

    - `master`:定义Spark运行模式,如`local`(本地模式),`yarn`(YARN集群),`mesos`(Mesos集群)等。 - `spark.driver.memory`:驱动程序的内存分配。 - `spark.executor.memory`:executor(执行器)的内存分配...

    Java操作Spark入门程序

    其中,`appName`是你的应用名称,`master`指定Spark运行模式,`local[*]`表示在本地多线程模式下运行。 二、配置开发信息 1. **Spark配置**: 你可以通过`SparkConf`对象来设置Spark的特定配置参数。例如,如果你...

    learning-spark-examples-master

    此外,还需要设置Hadoop环境(如果要用到HDFS)以及配置Spark运行模式,如本地模式、集群模式或YARN模式。 四、Spark基本操作 Spark的编程模型主要包括RDD(弹性分布式数据集)、DataFrame和Dataset。RDD是Spark的...

    learn_spark.pdf

    3. Spark运行模式: - Standalone是Spark自带的一种分布式运行模式,它不依赖于其他集群管理系统。 - 在Standalone模式下,Spark通过Master和Worker节点来管理计算资源和任务调度。 - Standalone模式支持高可用性...

    Spark原理及源码剖析1

    在配置Spark运行模式时,可以使用不同的Master URL,例如`local`(单进程本地运行)、`local[K]`(K个进程本地运行)、`local[*]`(CPU核心数个进程本地运行),以及Spark Standalone、YARN client和YARN cluster...

    Spark实验:Standalone模式安装部署(带答案)1

    在Standalone模式下,Spark可以独立于任何分布式资源管理系统运行,形成一个自包含的集群。以下是安装部署Spark Standalone模式的详细步骤和相关知识点。 **一、实验描述与环境** 1. 实验描述:本实验旨在搭建一个...

    spark知识点个人总结

    6. Spark运行模式: - Local:本地模式,适用于开发和测试。 - Standalone:Spark自带的集群管理模式,适合小规模部署。 - YARN:在Hadoop YARN上运行Spark,充分利用已有资源。 - Mesos:在Mesos集群上运行,...

    Spark开发指南.pdf

    #### 二、Spark运行模式 Spark 支持多种运行模式,以适应不同的部署环境和需求: 1. **Local**: 单机模式,适用于开发和测试环境。 - **特点**: 使用单线程执行任务,不涉及分布式计算。 - **应用场景**: 开发...

    Spark on Yarn模式部署.docx

    Spark 配置是指在 Spark 应用程序中配置各种参数和环境变量,以便 Spark 能够正确地运行和执行任务。 Spark on Yarn 模式部署步骤 ### 步骤一:修改主机名,添加主机名到 IP 地址映射 在这步骤中,我们需要新建...

    Spark笔记1.docx

    Spark 运行模式: 1. local 本地模式(单机):用于开发测试。 2. standalone 独立集群模式:用于开发测试和生产环境。 3. standalone-HA 高可用模式:用于生产环境。 4. on yarn 集群模式:用于生产环境。 5. on ...

Global site tag (gtag.js) - Google Analytics