Spark Streaming揭秘 Day26

JobGenerator源码图解

今天主要解析一下JobGenerator,它相当于一个转换器,和机器学习的pipeline比较类似,因为最终运行在SparkCore上,作为应用程序,需要开发者提供一些信息才能够运行。

简述

JobGenerator这个类会负责从DStream中产生Jobs,同时进行checkpoint和清理数据。

JobGenerator的核心是一个钟,这里采用反射生成,并提供给定时器,根据周期性触发事件
Spark Streaming揭秘 Day26 JobGenerator源码图解-LMLPHP

generateJobs是核心方法,分为5个运行步骤:
Spark Streaming揭秘 Day26 JobGenerator源码图解-LMLPHP

  1. 获取时间段内的Block信息,所以说SparkStreaming的本质是一个小型的批处理。
  2. 根据graph基于时间来使用Block,最终会调用OutputStream的generateJob方法。
  3. 处理元数据inputInfo。
  4. 提交处理作业,首先处理监听器,之后交给线程池来执行。
  5. 进行checkpoint归档,并更新元数据信息。

下面进入启动方法start,这里面除了启动定时器以外,还对graph进行了初始化。
Spark Streaming揭秘 Day26 JobGenerator源码图解-LMLPHP

graph的初始化,最终会调用DStream上的方法,首先是设置起始时间,最后会根据依赖关系初始化父DStream。
Spark Streaming揭秘 Day26 JobGenerator源码图解-LMLPHP

绘图

Spark Streaming揭秘 Day26 JobGenerator源码图解-LMLPHP

欲知后事如何,且听下回分解!

DT大数据每天晚上20:00YY频道现场授课频道68917580

05-08 15:20