Spark Streaming 架构原理分析

目录:

  • 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提交流程一致。

你可能感兴趣的:(spark)