SparkStreaming-运行架构

SparkStreaming-运行架构

SparkStreaming相对其他流处理系统最大的优势在于流处理引擎和数据处理在同一个软件栈,其中SparkStreaming功能主要包括流处理引擎的流数据接收与存储以及批处理作业的生成与管理,而spark核心负责处理SparkStreaming发送过来的作业。SparkStreaming分为Driver端和Client端。

运行在Driver端为StreamingContext实例。StreamingContext实例包括DSteamGraphJobScheduler(包括ReceiverTrackerJobGenerator)

运行在Client端为ReciverSupervisorReciver等。

SparkStreaming进行流数据处理大致可以分为:

1.启动流处理引擎

2.接收及存储流数据

3.处理流数据

4.输出处理结果

如下图所示:

 

 

 

 

详解:

(1).初始化StreamingContext对象,在该对象启动过程中实例化DStreamGraphJobScheduler

DStreamGraph用于存放DStream以及DStream之间的依赖关系等信息。

JobScheduler中包括ReceiverTrackerJobGeneratorReceiverTrackerDriver端流数据接收器(Receiver)的管理者;JobGenerator为批处理作业生成器。

ReceiverTracker启动过程中,根据流数据接收器分发策略通知对应的Executor中的流数据接收管理器(ReciverSupervisor)启动,再由ReciverSupervisor启动流数据接收器。

(2).当流数据接收器Receiver启动后,持续不断地接收实时流数据,根据传过来数据的大小进行判断,如果数据量很小,则攒多条数据成一块,然后再进行块存储;如果数据量大,则直接进行块存储。

对于这些数据Receiver直接交到ReciverSupervisor,由其进行数据转储操作。块存储根据设置是否预写日志分为两种:

  一种是使用非预写日志BlockManagerBasedBlockHandler方法直接写到Worker的内存或磁盘中

  另一种是进行预写日志WriteAheadLogBasedBlockHandler方法,即在预写日志同时把数据写入到Worker的内存或磁盘中

数据存储完毕后,ReciverSupervisor会把数据存储的云信息上报给ReceiverTrackerReceiverTracker再把这些信息转发给ReceivedBlockTracker,由它负责管理收到数据块的元信息。

(3).StreamingContextJobGenerator中维护一个定时器,该定时器在批处理时间到来时会进行生成作业的操作。在该操作中会进行如下操作:

a.通知ReceiverTracker将接收到的数据进行提交,在提交时采用synchronized关键字进行处理,保证每条数据被划入一个且只被划入一个批次中。

b.要求DStreamGraph根据DStream依赖关系生成作业序列Seq[Job]

c.从第一步中ReceiverTracker获取本批次数据的元数据。

d.把批处理时间time、作业序列Seq[Job]和本批次数据的元数据包装为JobSet,调用JobScheduler.submitJobSet(JobSet)提交给JobScheduler,JobScheduler将把这些作业发送给Spark核心进行处理,由于该执行为异步,因此本步执行速度将非常快。

e.只要提交结束(不管作业是否被执行),SparkStreaming对整个系统做一个检查点(checkpoint

(4).Spark核心的作业对数据进行处理,处理完毕后输出到外部系统,如数据库或文件系统,输出的数据可以被外部系统所使用。

由于实时留数据的数据源源不断地流入,Spark会周而复始地进行数据处理,响应也会持续不断地输出结果。

posted on   嘣嘣嚓  阅读(237)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示