Spark Streaming 架构原理分析

本文围绕Spark Streaming展开,介绍了其程序入口StreamingContext,以及其中四个重要组件。ReceiveTracker负责接收外部数据并保存信息;DStreamGraph构建DStream依赖关系;JobGenerator定期获取数据构造RDD并生成job;JobScheduler处理job,后续流程与Spark Core一致。

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

目录:

  • 1、StreamingContext
  • 2、ReceiveTracker 组件
  • 3、DStreamGraph组件
  • 4、JobGenerator 组件
  • 5、JobScheduler 组件

1、StreamingContext

       streamingContext 是 spark steaming 程序入口,类似 spark core 程序 创建 sparkContext。streamingContext 中主要有四个重要的组件,即:DStreamGraph、ReceiveTracker、JobGenerator、JobScheduler。详情如下:

2、ReceiveTracker 组件

       streamingContext.start() 方法调用后,实际上会调用spark集群中某个worker节点上的 Executor ,去启动输入DStream 的 Receiver ,例如:JavaReceiverDStream,这个Receiver 从外部了(kafka)拉取数据,收到数据之后,就会先将数据保存到它所运行的 Executor 关联的 BlockManager 中,该数据默认采用MEMORY_ONLY_SER_2存储级别,还会发送一份数据信息到 streamingContext 中的 ReceiveTracker组件中。

3、DStreamGraph组件 

      DStreamGraph 将定义多个DStream 操作串联起来,即它构建了多个DStream之间的依赖关系。

4、JobGenerator 组件

      每隔一个batch interval,jobGenerator 就会去 ReceiveTracker 中获取一次时间间隔内的数据,并将数据构造成RDD, 每个batch 对一个RDD,  再根据 DStreamGraph 定义的算子以及多个DStream之间的依赖关系,生产一个job,并这job 最初RDD 就是该batch interval 中获得RDD, 然后交给JobScheduler 处理。

5、JobScheduler 组件

JobScheduler 接收到JobGenerator 提交的job 信息后,之后的流程同spark core job提交流程一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值