理论教育 SparkStreaming的工作原理解析

SparkStreaming的工作原理解析

时间:2023-06-14 理论教育 版权反馈
【摘要】:Spark Streaming 中最主要的抽象是DStream,表示连续不断的数据流。同时Spark Streaming 的Receiver 并行接收数据,将数据缓存至Spark 工作节点的内存中,为每个RDD 生成一个Spark Job 处理。Spark Streaming 的工作流程:1. Spark Streaming 把实时输入数据流以时间片为单位切分成块。对于每个时间片,DStream Graph 都会产生一个RDD Graph;针对每个输出操作,Spark Streaming 都会创建一个Spark Action;对于每个Spark Action,Spark Streaming 都会产生一个相应的Spark Job,并交给JobManager。

SparkStreaming的工作原理解析

Spark Streaming 中最主要的抽象是DStream(Discretized Stream,离散化数据流),表示连续不断的数据流。其基本原理是将实时输入数据流以时间片(秒级)为单位拆分成一段段的Dstream(流数据离散化处理),然后经Spark 引擎以类似批处理的方式处理每个时间片数据,即每段数据转换成RDD,将对DStream 的操作转换成对RDD 的操作,每个RDD 操作处理一小块数据。

同时Spark Streaming 的Receiver 并行接收数据,将数据缓存至Spark 工作节点的内存中,为每个RDD 生成一个Spark Job 处理。经过延迟优化后Spark 引擎对短任务(几十毫秒)能够进行批处理并且可将结果输出至别的系统中。

Spark Streaming 的工作流程:

1. Spark Streaming 把实时输入数据流以时间片(如1 秒)为单位切分成块。(www.daowen.com)

2. Spark Streaming 把程序中对DStream 的操作转换为DStream Graph。对于每个时间片,DStream Graph 都会产生一个RDD Graph;针对每个输出操作(如print、foreach 等),Spark Streaming 都会创建一个Spark Action;对于每个Spark Action,Spark Streaming 都会产生一个相应的Spark Job,并交给JobManager。

4. JobManager 中维护着一个Jobs 队列,Spark Job 存储在这个队列中,JobManager把Spark Job 提交给Spark Scheduler,Spark Scheduler 负责调度Task 到相应的Spark Executor 上执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈