Spark Streaming揭秘 Day11

Receiver Tracker的具体实现

ReceiverTracker是运行在Driver上Receiver管理程序,今天让我们深入学习一下。

核心:ReceivedBlockTracker

通过阅读代码,我们会发现ReceiverTracker中最为重要的是其中的成员ReceivedBlockTracker,主要存放实际的Block数据,这是一个典型的facade模式的实现。

数据结构:两个Map

在ReceivedBlockTracker中,最为关键的是以下两个数据结构:

这三个结构代表了ReceiverBlockTracker处理数据的生命周期:

  1. streamIdToUnallocatedBlockQueues以streamId(表示单个Receiver)将收到的Block聚集在一个队列中,供后续处理。

  2. timeToAllocatedBlocks以批次为单位,将Block进行汇总,供后续运算使用

对这两个数据结构,主要是同一个两个方法来操作:

addBlock方法主要将数据存入streamIdToUnallocatedBlockQueues,在这里出现了WAL机制,我们明天会介绍。

allocateBlocksToBatch根据时间需要,将block分配给batch

需要注意的是,这个方法是在JobGenerator中调用的

与上一日内容相串联,我们可以形成数据管理的全貌。

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

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

Spark Streaming揭秘 Day11 Receiver Tracker的具体实现的更多相关文章

  1. Spark Streaming揭秘 Day9 从Receiver的设计到Spark框架的扩展

    Spark Streaming揭秘 Day9 从Receiver的设计到Spark框架的扩展 Receiver是SparkStreaming的输入数据来源,从对Receiver整个生命周期的设计,我们 ...

  2. Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析

    Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析 今天通过集群运行模式观察.研究和透彻的刨析SparkStreaming的日志和web监控台. Day28 ...

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

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

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

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

  5. Spark Streaming揭秘 Day15 No Receivers方式思考

    Spark Streaming揭秘 Day15 No Receivers方式思考 在前面也有比较多的篇幅介绍了Receiver在SparkStreaming中的应用,但是我们也会发现,传统的Recei ...

  6. Spark Streaming揭秘 Day13 数据安全容错(Driver篇)

    Spark Streaming揭秘 Day13 数据安全容错(Driver篇) 书接上回,首先我们要考虑的是在Driver层面,有哪些东西需要维持状态,只有在需要维持状态的情况下才需要容错,总的来说, ...

  7. Spark Streaming揭秘 Day12 数据安全容错(Executor篇)

    Spark Streaming揭秘 Day12 数据安全容错(Executor篇) 今天,让我们研究下SparkStreaming在Executor端的数据安全及容错机制. 在SparkStreami ...

  8. Spark Streaming揭秘 Day10 从BlockGenerator看接收数据的生命周期

    Spark Streaming揭秘 Day10 从BlockGenerator看接收数据的生命周期 昨天主要介绍了SparkStreaming中对于Receiver的生命周期管理,下面让我们进入到Re ...

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

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

随机推荐

  1. 小白日记38:kali渗透测试之Web渗透-手动漏洞挖掘(四)-文件上传漏洞

    手动漏洞挖掘 文件上传漏洞[经典漏洞,本身为一个功能,根源:对上传文件的过滤机制不严谨] <?php echo shell_exec($_GET['cmd']);?> 直接上传webshe ...

  2. BloomFilter——读数学之美札记

    之前接触过bitmap,读吴军先生的数学之美,看到了一个更强大的数据结构,布隆过滤器(Bloomfilter),赶紧记下来吧,忘了怪可惜的. bitmap的使用是很有局限性的,往往只能用于海量数值型数 ...

  3. Android(java)学习笔记88:TextView属性大全

    TextView属性大全: android:autoLink       设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/ph ...

  4. DataTable 的数据导出到 Excel

    如果有个DataTable类型的数据,可以这样导出到Excel中: public static void ExportToExcel(DataTable dt, string fileName) { ...

  5. iOS 新特性关键字

    1.用来修饰属性,或者方法的参数,方法的返回值 /** nullable:表示可以传空 */ //@property (nonatomic, strong, nullable) NSString *n ...

  6. 用css做类似表格的布局

    --2013年6月24日12:08:49 今天突然不想用table了,就在园子里找了几个用css的解决办法,直接上代码: --1.html代码: <!DOCTYPE html PUBLIC &q ...

  7. [改善Java代码]覆写equals方法必须覆写hashCode方法

    覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...

  8. Linux 内核模块设计

    一.  内核模块 1.  头文件 Linux/init.h  和 Linux/module.h 2.  装载内核 insmod  对应的转载函数 module_init(); 3.  卸载内核 rmm ...

  9. Linux 解压/压缩操作命令

    .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gun ...

  10. MyBatis(3.2.3) - Multiple results as a map

    If we have a mapped statement that returns multiple rows and we want the results in a HashMap with s ...