Spark架构及运行机制

Spark是基于内存计算的大数据并行计算框架。因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性。从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中。学习Spark就需要了解其架构及运行机制。

Spark架构

Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点。

master作为整个集群的控制器,负责整个集群的正常运行。

worker相当于计算节点,接受主节点命令与状态汇报。

executor负责任务的执行。

client作为用户的客户端负责提交应用。

driver负责控制一个应用的执行。

下图为Spark架构图

Spark集群部署后,需要在主节点和从节点分别启动master进程和worker进程来控制集群。在一个应用执行中,driver是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个worker用来管理计算节点和创建executor并行处理任务。在执行阶段,driver会将task和其依赖的文件传递给worker机器,同时executor对相应数据分区的任务进行处理。

SparkContext: 整个应用的上下文,控制应用的生命周期。

RDD: Spark的基本计算单元,一组RDD可执行的有向无环图RDD Graph。

DAGScheduler: 根据作业构建基于Stage的DAG,并提交给Stage的TaskScheduler。

TaskScheduler: 将任务分给executor执行。

SparkEnv: 线程级别的上下文,存储运行时的重要组件的引用。

Spark的运行流程: Client提交应用,master找到一个worker启动driver,driver向master请求资源,之后将应用转化为RDD Graph,再由DAGScheduler将RDD Graph转换为stage的DAG提交给TaskScheduler,由TaskScheduler提交任务给executor。

时间: 2024-08-24 17:43:31

Spark架构及运行机制的相关文章

XenServer的架构之Xenopsd组件架构与运行机制

一.Xenopsd概述 Xenopsd是XenServer的虚拟机管理器. Xenopsd负责:启动,停止,暂停,恢复,迁移虚拟机:热插拔虚拟磁盘(VBD):热插拔虚拟网卡(VIF):热插拔虚拟PCI设备:设置VM控制台:运行的引导程序:设置QoS参数:配置SMBIOS表:处理事故等. 以下列出了完整的功能列表: 通用功能 可插拔的后端包括: XC:通过libxc和libxenguest驱动的Xen xenlight:通过libxenlight和libxc驱动的Xen libvirt的:通过li

通过案例对 spark streaming 透彻理解三板斧之三:spark streaming运行机制与架构

本期内容: 1. Spark Streaming Job架构与运行机制 2. Spark Streaming 容错架构与运行机制 事实上时间是不存在的,是由人的感官系统感觉时间的存在而已,是一种虚幻的存在,任何时候宇宙中的事情一直在发生着的. Spark Streaming好比时间,一直遵循其运行机制和架构在不停的在运行,无论你写多或者少的应用程序都跳不出这个范围. 一.   通过案例透视Job执行过程的Spark Streaming机制解析,案例代码如下: import org.apache.

spark版本定制:SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错

本期内容: 1.解密Spark Streaming Job架构和运行机制 2.解密Spark Streaming 容错架构和运行机制 一.解密Spark Streaming Job架构和运行机制 通过代码洞察Job的执行过程: object OnlineForeachRDD2DB { def main(args: Array[String]){ /* * 第1步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息 */ val conf = new SparkCon

解密SparkStreaming运行机制和架构分析

 解密Spark Streaming Job架构和运行机制 解密Spark Streaming容错架构和运行机制 作业的生成肯定是一个动态的生成 private[streaming]valgraph: DStreamGraph = { if(isCheckpointPresent) { cp_.graph.setContext(this) cp_.graph.restoreCheckpointData() cp_.graph }else{ require(batchDur_ != null,

第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错

理解Spark Streaming的Job的整个架构和运行机制对于精通Spark Streaming是至关重要的. 一 首先我们运行以下的程序,然后通过这个程序的运行过程进一步加深理解Spark Streaming流处理的Job的执行的过程,代码如下: object OnlineForeachRDD2DB { def main(args: Array[String]){ /* * 第1步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息, * 例如说通过setMa

第3课:SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错

本期内容: 解密Spark Streaming Job架构和运行机制 解密Spark Streaming容错架构和运行机制 理解SparkStreaming的Job的整个架构和运行机制对于精通SparkStreaming是至关重要的.我们知道对于一般的Spark应用程序来说,是RDD的action操作触发了Job的运行.那对于SparkStreaming来说,Job是怎么样运行的呢?我们在编写SparkStreaming程序的时候,设置了BatchDuration,Job每隔BatchDurat

解密SparkStreaming运行机制和架构进阶之Job和容错(第三篇)

本期要点: 1.探讨Spark Streaming Job架构和运行机制 2.探讨Spark Streaming 容错机制 关于SparkStreaming我们在前面的博客中其实有所探讨,SparkStreaming是运行在SparkCode之前的一个子框架,下面我们通过一个简单例子来逐一探讨SparkStreaming运行机制和架构 SparkStreaming运行机制和架构 //新浪微博:http://weibo.com/ilovepains/ SparkConf conf = new Sp

2.Spark Streaming运行机制和架构

1 解密Spark Streaming运行机制 上节课我们谈到了技术界的寻龙点穴.这就像过去的风水一样,每个领域都有自己的龙脉,Spark就是龙脉之所在,它的龙穴或者关键点就是SparkStreaming.这是上一节课我们非常清晰知道的结论之一.而且上一节课,我们采用了降维的方式.所谓降维的方式,是指把时间放大,就是把时间变长的情况下,我们做SparkStreaming的案例演示的实战,实战的结果是,我们发现在特定的时间段里面,确实是具体的RDD在工作,那么这一节课有必要在上一节课的基础上去谈一

Spark Streaming架构设计和运行机制总结

本期内容 : Spark Streaming中的架构设计和运行机制 Spark Streaming深度思考 Spark Streaming的本质就是在RDD基础之上加上Time ,由Time不断的运行触发周而复始的接收数据及产生Job处理数据. 一. ReceiverTracker : Receiver数据接收器的启动.接收数据过程中元数据管理,元数据管理是使用内部的RPC. 根据时间的间隔把数据分配给当前的BatchDuration : 通过Dstreams中的StreamID以及这个DStr