spark基本概念与运行架构

Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写。

RDD:弹性分布式数据集(Resilient Distributed Dataset)是分布式内存的一个抽象概念,提供了一个高度受限的共享内存模型。一个RDD包含多个分区(Partition)。

DAG:有向无环图(Directed Acyclic Graph)反应RDD之间的依赖关系。

Executor:运行在工作节点(WorkNode)的一个进程,负责运行Task。

Application:用户编写的Spark程序。

Task:运行在Executor上的工作单元。

Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。

Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表了一组由关联的、相互之间没有shuffle依赖关系的任务组成的任务集。

与MapReduce相比的优势:

  • 利用多线程来执行具体的任务,减少任务的启动开销
  • Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,减少IO开销

  1. 为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控。
  2. 资源管理器为Executor分配资源,并Executor启动进程。
  3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行并提供应用程序代码。
  4. Task在Executor上运行把执行结果反馈给TaskSchedulor,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源。

Spark运行架构特点

  1. 每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task。
  2. Spark运行过程与资源管理器无关,只要能够获取Executor进程并保存通信即可。
  3. Task采用数据本地性和推测执行等优化机制。

(厦门大学大数据公开课笔记)

原文地址:https://www.cnblogs.com/macyzhang/p/10054517.html

时间: 2024-10-29 19:06:21

spark基本概念与运行架构的相关文章

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

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

spark应用程序的运行架构

几个基本概念: (1)job:包含多个task组成的并行计算,往往由action催生. (2)stage:job的调度单位. (3)task:被送到某个executor上的工作单元. (4)taskSet:一组关联的,相互之间没有shuffle依赖关系的任务组成的任务集. 一个应用程序由一个driver program和多个job构成.一个job由多个stage组成.一个stage由多个没有shuffle关系的task组成. spark应用程序的运行架构:   (1)简单的说: 由driver向

【Spark深入学习-11】Spark基本概念和运行模式

----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 2.2Hadoop计算框架介绍 3.Spark概述 3.1 Spark出现的技术背景 3.2 Spark核心概念介绍 4.Spark运行模式 4.1.Spark程序组成 4.2.Spark运行模式 5.参考资料 --------------------- 1.大数据基础 1.1 大数据平台基本框架

Spark应用程序的运行框架

几个基本概念: (1)job:包含多个task组成的并行计算,往往由action催生. (2)stage:job的调度单位. (3)task:被送到某个executor上的工作单元. (4)taskSet:一组关联的,相互之间没有shuffle依赖关系的任务组成的任务集. 一个应用程序由一个driver program和多个job构成.一个job由多个stage组成.一个stage由多个没有shuffle关系的task组成. spark应用程序的运行架构:   (1)简单的说: 由driver向

【转载】Spark运行架构

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

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入门实战系列--4.Spark运行架构

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

Spark运行架构

1.构建Spark Application运行环境: 在Driver Program中新建SparkContext(包含sparkcontext的程序称为Driver Program): Spark Application运行的表现方式为:在集群上运行着一组独立的executor进程,这些进程由sparkcontext来协调: 2.SparkContext向资源管理器申请运行Executor资源,并启动StandaloneExecutorBackend,executor向sparkcontent

EJB3基本概念、运行环境、下载安装与运行jboss

EJB3基本概念 什么是EJB: EJB(EnterpriceJavaBeans)是一个用于分布式业务应用的标准服务端组件模型.采用EJB架构编写的应用是可伸的.事务性的.多用户安全的.采用EJB编写的这些应用,可以部署在任何支持EJB规范的服务器平台,如Jboss.weblogic等. EJB用来干什么? EJB实际是用来编写业务层代码.如果大家对于MVC(model-view-controller)结构的应用有所了解的话,我们知道一个基于MVC结构的应用应包含显示层.控制层和业务层,假设我们