Spark Streaming源码解读之数据清理内幕彻底解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark Streaming源码解读之数据清理内幕彻底解密相关的知识,希望对你有一定的参考价值。

本期内容 :

  • Spark Streaming数据清理原理和现象
  • Spark Streaming数据清理代码解析

 

  Spark Streaming一直在运行的,在计算的过程中会不断的产生RDD ,如每秒钟产生一个BachDuration同时也会产生RDD,

  在这个过程中除了基本的RDD外还有累加器、广播变量等,对应Spark Streaming也有自己的对象、源数据及数据清理机制,

  在运行中每个BachDuration会触发了Job ,由于会自动产生对象、数据及源数据等运行完成后肯定要自动进行回收 。

  

一、 数据源 :

  技术分享

  创建Kafka ,源数据的操作。

    技术分享

    技术分享

    技术分享

    技术分享

 

二、 处理数据的输出 :

  从研究其生命周期的话,需要进行下一步 ,输出进行考虑,ForEachRDD属于Materialized(物化),物化也就是存储到外部设备上。

    技术分享

    技术分享

    技术分享

    基于数据来源Kafka,DStreams随着时间的进行会不断的自己的内存数据结构GeneratedRDD中维护一个HashMap ,这个HashMap的时间窗口的RDD的实例,

  按照BachDuration来存储这个RDD及删除RDD。

    技术分享

  内存缓存结构,有时会调用Cache的操作,其实是对DStreams进行标记,指定StorageLevel最终作用于RDD ,也会有相关的Cache操作。

    技术分享

 

三、 JobGenerator 清理的过程 :

  不断循环的产生事件(消息循环器) :

    技术分享

    技术分享

    技术分享

    技术分享

  事件触发以时间为单位:

    技术分享

    技术分享

    技术分享

 

     Spark Streaming在每次一个作业处理完成之后,也就是每个BachDuration处理完成之后都会进行清理,首先是输出的DStreams进行清理,然后对他的依赖关系进行清理,

  清理的时候,默认下是会清理RDD的数据等相关的部分,及Metadata元数据的清理。

 

 

    备注:
    • 资料来源于:王家林(Spark发行版本定制)
    • 新浪微博:http://www.weibo.com/ilovepains

 

以上是关于Spark Streaming源码解读之数据清理内幕彻底解密的主要内容,如果未能解决你的问题,请参考以下文章

Spark Streaming源码解读之数据清理内幕彻底解密

Spark Streaming源码解读之数据清理内幕彻底解密

Spark 定制版:016~Spark Streaming源码解读之数据清理内幕彻底解密

(版本定制)第16课:Spark Streaming源码解读之数据清理内幕彻底解密

第12课:Spark Streaming源码解读之Executor容错安全性

Spark Streaming源码解读之Executor容错安全性