写点什么

SparkStreaming 知识点总结

发布于: 2021 年 05 月 19 日
SparkStreaming知识点总结

1. 整体流程

Spark Streaming 中,会有一个接收器组件 Receiver,作为一个长期运行的 task 跑在一个 Executor 上。Receiver 接收外部的数据流形成 input DStream

DStream 会被按照时间间隔划分成一批一批的 RDD,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。时间间隔的大小可以由参数指定,一般设在 500 毫秒到几秒之间。

对 DStream 进行操作就是对 RDD 进行操作,计算处理的结果可以传给外部系统。

Spark Streaming 的工作流程像下面的图所示一样,接受到实时数据后,给数据分批次,然后传给 Spark Engine 处理最后生成该批次的结果。



2.  数据抽象

Spark Streaming 的基础抽象是 DStream(Discretized Stream,离散化数据流,连续不断的数据流),代表持续性的数据流和经过各种 Spark 算子操作后的结果数据流

●可以从以下多个角度深入理解 DStream

1.DStream 本质上就是一系列时间上连续的 RDD



2.对 DStream 的数据的进行操作也是按照 RDD 为单位来进行的



3.容错性

底层 RDD 之间存在依赖关系,DStream 直接也有依赖关系,RDD 具有容错性,那么 DStream 也具有容错性

如图

每一个椭圆形表示一个 RDD

椭圆形中的每个圆形代表一个 RDD 中的一个 Partition 分区

每一列的多个 RDD 表示一个 DStream(图中有三列所以有三个 DStream)

每一行最后一个 RDD 则表示每一个 Batch Size 所产生的中间结果 RDD

 


4.准实时性/近实时性

Spark Streaming 将流式计算分解成多个 Spark Job,对于每一时间段数据的处理都会经过 Spark DAG 图分解以及 Spark 的任务集的调度过程。

对于目前版本的 Spark Streaming 而言,其最小的 Batch Size 的选取在 0.5~5 秒钟之间

所以 Spark Streaming 能够满足流式准实时计算场景,对实时性要求非常高的如高频实时交易场景则不太适合

 

●总结

简单来说 DStream 就是对 RDD 的封装,你对 DStream 进行操作,就是对 RDD 进行操作

对于 DataFrame/DataSet/DStream 来说本质上都可以理解成 RDD

发布于: 2021 年 05 月 19 日阅读数: 12
用户头像

专注于大数据技术研究 2020.11.10 加入

运营公众号:五分钟学大数据。大数据领域原创技术号,深入大数据技术

评论

发布
暂无评论
SparkStreaming知识点总结