Spark运行架构

1、构建Spark Application运行环境;

在Driver Program中新建SparkContext(包含sparkcontext的程序称为Driver Program);

Spark Application运行的表现方式为:在集群上运行着一组独立的executor进程,这些进程由sparkcontext来协调

2、SparkContext向资源管理器申请运行Executor资源,并启动StandaloneExecutorBackend,executor向sparkcontent申请task;

集群通过SparkContext连接到不同的cluster manager(standalone、yarn、mesos),cluster manager为运行应用的Executor分配资源;一旦连接建立之后,Spark每个Application就会获得各个节点上的Executor(进程);每个Application都有自己独立的executor进程;Executor才是真正运行在WorkNode上的工作进程,它们为应用来计算或者存储数据;

3、SparkContext获取到executor之后,Application的应用代码将会被发送到各个executor;

4、SparkContext构建RDD DAG图,将RDD DAG图分解成Stage DAG图,将Stage提交给TaskScheduler,最后由TaskScheduler将Task发送给Executor运行;

5、Task在Executor上运行,运行完毕后释放所有资源;

Spark运行架构特点:

1、每个Application获取专属的executor进程,该进程在Application运行期间一直驻留,并以多线程方式运行tasks;这种Application隔离机制优势在于,无论是从调度角度看(每个Driver调度它自己的任务),还是从运行角度看(来自不同Application的Task运行在不同的JVM中)。当然,这也意味着Spark Application不能跨应用程序共享数据,除非借助于外部存储系。比如:Tachyon、SharkServer;

2、spark并不关心底层用什么cluster manager在运作,它只关心是否能拿到executor并能保持相互通信即可,因为最终的Task是运行在executor上;

3、让你的driver program尽量靠近worker(运行executor节点),最好在同一个机架中。因为Application运行过程中SparkContext和Executor之间有大量信息交互;如果想在远程集群中运行,最好采用RPC将Application提交给集,不要远离worker运行application;

4、Task采用了数据本地性和推测执行的优化机制;

详见  http://spark.apache.org/docs/latest/cluster-overview.html

Spark运行架构,布布扣,bubuko.com

时间: 2025-01-14 02:57:18

Spark运行架构的相关文章

【转载】Spark运行架构

1. Spark运行架构 1.1 术语定义 lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码: lDriver:Spark中的Driver即运行上述Application的main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境.在Spark中由S

Spark入门实战系列--4.Spark运行架构

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1. Spark运行架构 1.1 术语定义 lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码: lDriver:Spark中的Driver即运行上述Application的main()函数并且创建SparkContext

Spark 运行架构核心总结

摘要: 1.基本术语 2.运行架构 2.1基本架构 2.2运行流程  2.3相关的UML类图  2.4调度模块: 2.4.1作业调度简介 2.4.2任务调度简介 3.运行模式 3.1 standalone模式 4.RDD实战 总结: 基本术语: Application:在Spark 上建立的用户程序,一个程序由一个驱动程序(Driver Program)和集群中的执行进程(Executer)构成. Driver Program:运行应用程序(Application)的main函数和创建Spark

Spark运行架构特点

1.1.1.Executor进程专属 每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行tasks. Spark Application不能跨应用程序共享数据,除非将数据写入到外部存储系统. 如图所示: 1.1.2. 支持多种资源管理器 Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了, Spark支持资源管理器包含: Standalone.On Mesos.On YARN.Or On E

Spark运行架构设计

原文地址:https://www.cnblogs.com/fanweisheng/p/11268286.html

spark基本概念与运行架构

Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写. RDD:弹性分布式数据集(Resilient Distributed Dataset)是分布式内存的一个抽象概念,提供了一个高度受限的共享内存模型.一个RDD包含多个分区(Partition). DAG:有向无环图(Directed Acyclic Graph)反应RDD之间的依赖关系. Executor:运行在工作节点(WorkNode)的一个进程,负责运行Task. Application:用户编写的

(3)spark核心概念以及运行架构

spark核心概念 我们之前介绍了spark的核心RDD,它是spark操作的基本单元.但是对于spark集群来说你还需要它的其它概念,比如我们操作RDD的时候,资源由谁来管理.任务由谁来执行等等. application:就是我们基于spark开发的应用程序,比如我们写的py文件,一个py文件就可以看成是一个基于spark的应用程序,它是由一个driver进程和多个executor组成.driver和executor是什么先不用管,总之记住一个基于spark的应用程序=1个driver+多个e

spark记录(5)Spark运行流程及在不同集群中的运行过程

摘自:https://www.cnblogs.com/qingyunzong/p/8945933.html 一.Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext.由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等.程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运

Spark学习之路 (七)Spark 运行流程

讨论QQ:1586558083 目录 一.Spark中的基本概念 二.Spark的运行流程 2.1 Spark的基本运行流程 三.Spark在不同集群中的运行架构 3.1 Spark on Standalone运行过程 3.2 Spark on YARN运行过程 正文 回到顶部 一.Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext.由SparkContext负责与ClusterManager通信,进行资