第2课:通过案例对SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构

本文深入探讨Spark Streaming的工作原理,介绍了其实现机制,包括如何将实时数据流划分为批处理,并通过DStream和RDD的概念解释了其核心架构。同时,文章还分析了Spark Streaming在时间和空间维度上的处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本期内容:

解密Spark Streaming运行机制

解密Spark Streaming架构


一、Spark Streaming工作原理:Spark Sreaming接收实时输入数据流并将它们按批次划分,然后交给Spark引擎处理生成按照批次划分的结果流。


二、DStream是逻辑级别的,而RDD是物理级别的。DStream是随着时间的流动内部将集合封装RDD。对DStream的操作,转过来对其内部的RDD操作。


Spark Core处理的每一步都是基于RDD的,RDD之间有依赖关系。

如上图:RDDDAG显示的是有3Action,会触发3jobRDD自下向上依赖,RDD产生job就会具体的执行。

DSteam Graph中可以看到,DStream的逻辑与RDD基本一致,它就是在RDD的基础上加上了时间的依赖。

RDDDAG又可以叫空间维度,也就是说整个Spark Streaming多了一个时间维度,也可以成为时空维度。

从这个角度来讲,可以将Spark Streaming放在坐标系中。其中Y轴就是对RDD的操作,RDD的依赖关系构成了整个job的逻辑,而X轴就是时间。随着时间的流逝,固定的时间间隔(Batch Interval)就会生成一个job实例,进而在集群中运行。

三、



空间维度:代表是RDD的依赖关系构成的具体的处理逻辑步骤,是用DStreaming Graph来表示的;

时间维度:按照特定时间间隔不断地生成Job的实例并在集群上运行;


随着时间的流程基于DStreamGraph不断地生成以RDD Graph也就是DAG的方式产生JOB,

并通过JobScheduler的线程池的方式提交给Spark Cluster不断地执行;


(1)需要RDD DAG的生成模板 DStreamGraph;

(2)需要基于Timeline的Job控制器;

(3)inputStreams 和 outputStreams代表 数据输入和输出;

(4)具体Job运行在Spark Cluster 之上,此时系统容错就至关重要;

(5)事务处理,在处理出现崩溃的情况下 如何保证Exactly Once的事务语义



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值