Spark Streaming揭秘 Day26

JobGenerator源码图解

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

简述

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

JobGenerator的核心是一个钟,这里采用反射生成,并提供给定时器,根据周期性触发事件

generateJobs是核心方法,分为5个运行步骤:

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

下面进入启动方法start,这里面除了启动定时器以外,还对graph进行了初始化。

graph的初始化,最终会调用DStream上的方法,首先是设置起始时间,最后会根据依赖关系初始化父DStream。

绘图

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

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

Spark Streaming揭秘 Day26 JobGenerator源码图解的更多相关文章

  1. Spark Streaming揭秘 Day22 架构源码图解

    Spark Streaming揭秘 Day22 架构源码图解 今天主要是通过图解的方式,对SparkStreaming的架构进行一下回顾. 下面这个是其官方标准的流程描述. SparkStreamin ...

  2. Spark Streaming运行流程及源码解析(一)

    本系列主要描述Spark Streaming的运行流程,然后对每个流程的源码分别进行解析 之前总听同事说Spark源码有多么棒,咱也不知道,就是疯狂点头.今天也来撸一下Spark源码. 对Spark的 ...

  3. Spark Streaming揭秘 Day24 Transformation和action图解

    Spark Streaming揭秘 Day24 Transformation和action图解 今天我们进入SparkStreaming的数据处理,谈一下两个重要的操作Transfromation和a ...

  4. Spark Streaming updateStateByKey和mapWithState源码解密

    本篇从二个方面进行源码分析: 一.updateStateByKey解密 二.mapWithState解密 通过对Spark研究角度来研究jvm.分布式.图计算.架构设计.软件工程思想,可以学到很多东西 ...

  5. Spark Streaming揭秘 Day23 启动关闭源码图解

    Spark Streaming揭秘 Day23 启动关闭源码图解 今天主要分析一下SparkStreaming的启动和关闭过程. 从Demo程序出发,主要聚焦在两段代码: 启动代码: 关闭代码: 启动 ...

  6. Spark Streaming揭秘 Day25 StreamingContext和JobScheduler启动源码详解

    Spark Streaming揭秘 Day25 StreamingContext和JobScheduler启动源码详解 今天主要理一下StreamingContext的启动过程,其中最为重要的就是Jo ...

  7. Spark Streaming揭秘 Day5 初步贯通源码

    Spark Streaming揭秘 Day5 初步贯通源码 引子 今天,让我们从Spark Streaming最重要的三个环节出发,让我们通过走读,逐步贯通源码,还记得Day1提到的三个谜团么,让我们 ...

  8. Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕

    Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕 今天会逐行解析一下SparkStreaming运行的日志,运行的是WordCountO ...

  9. Kakfa揭秘 Day3 Kafka源码概述

    Kakfa揭秘 Day3 Kafka源码概述 今天开始进入Kafka的源码,本次学习基于最新的0.10.0版本进行.由于之前在学习Spark过程中积累了很多的经验和思想,这些在kafka上是通用的. ...

随机推荐

  1. hive-安装MySQL(centos6.4)

    为安装hive做准备,以前装过无数次,在线的.tar包的,一直不用忘得差不多了. centos6.4 虚拟机 先看有没有装,有的话应该是自带的,卸载就可以了 命令分别是 然后在线安装,命令是 (-y是 ...

  2. 由c#的值类型与引用类型说开去

    之前一直被灌输,C#分值类型和引用类型,在程序运行时,它们分别存在栈(Stack) 和堆(Heap)上.这也是面试经典问题了,但其实其中存在很大的误解.比如某个实例对象中有一个Int型成员.当这个实例 ...

  3. Matrix 二维树状数组的第二类应用

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17976   Accepted: 6737 Descripti ...

  4. Python学习笔记 第二课 循环

    >>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...

  5. [置顶] 《MFC游戏开发》笔记一 系列简介

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9299121 作者:七十一雾央 新浪微博:http:/ ...

  6. CMD相关命令初探

    今天想起来对个人写得一个自动启动绿色版MySQL服务器端的批处理文件,进行外观美化,使自己在启动时,能得心旷神怡一点.在网上学习了一点CMD批处理的知识.在此保留,以待后查. @      @:不显示 ...

  7. 接收POst数据流数据

    var data = "";                using (StreamReader readStream = new StreamReader(context.Re ...

  8. 关于Hadoop集群的搭建环境变量相关配置

    在任何路径下输入HDFS中的命令都可以进行shell操作的配置: 要设置环境变量: (1) # vim /etc/profile在profile文件下面追加写入下面信息 export HADOOP_H ...

  9. poj 2104 划分树

    思路:裸的划分树 #include<iostream> #include<algorithm> #include<cstring> #include<cstd ...

  10. eclipse svn重定位(relocate)

    eclipse 中项目svn 重定向 How to properly perform an SVN relocate on Zend for Eclipse 在eclipse中项目的svn 重定位(r ...