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 Streaming源码解读之数据清理内幕彻底解密的更多相关文章
- 16.Spark Streaming源码解读之数据清理机制解析
原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) 本期内容: 一.Spark Streaming 数据清理总览 二.Spark Streami ...
- Spark Streaming源码解读之JobScheduler内幕实现和深度思考
本期内容 : JobScheduler内幕实现 JobScheduler深度思考 JobScheduler 是整个Spark Streaming调度的核心,需要设置多线程,一条用于接收数据不断的循环, ...
- Spark Streaming源码解读之流数据不断接收和全生命周期彻底研究和思考
本节的主要内容: 一.数据接受架构和设计模式 二.接受数据的源码解读 Spark Streaming不断持续的接收数据,具有Receiver的Spark 应用程序的考虑. Receiver和Drive ...
- 15、Spark Streaming源码解读之No Receivers彻底思考
在前几期文章里讲了带Receiver的Spark Streaming 应用的相关源码解读,但是现在开发Spark Streaming的应用越来越多的采用No Receivers(Direct Appr ...
- 第12课:Spark Streaming源码解读之Executor容错安全性
一.Spark Streaming 数据安全性的考虑: Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行.所以这就涉及到一个非常重要的问题数据安全性. S ...
- Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考
本期内容 : 数据接收架构设计模式 数据接收源码彻底研究 一.Spark Streaming数据接收设计模式 Spark Streaming接收数据也相似MVC架构: 1. Mode相当于Rece ...
- 11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker: 本文将详细解析ReceiverTracker的的架构 ...
- Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考
本期内容 : Receiver启动的方式设想 Receiver启动源码彻底分析 多个输入源输入启动,Receiver启动失败,只要我们的集群存在就希望Receiver启动成功,运行过程中基于每个Tea ...
- Spark Streaming源码解读之Job动态生成和深度思考
本期内容 : Spark Streaming Job生成深度思考 Spark Streaming Job生成源码解析 Spark Core中的Job就是一个运行的作业,就是具体做的某一件事,这里的JO ...
随机推荐
- 为maven插件设置参数的三种方法
很多的maven插件都提供了丰富的可选参数,用户可以通过设置特定的参数值来控制maven插件的行为.设置插件参数的方法主要有三种,分别是命令行设置,POM文件中为插件设置全局参数和POM文件中为插件设 ...
- 用帝国CMS时遇到的问题
今天用帝国CMS时出现了如下提示: Table 'tuanwei.phome_ecms_twnews_index' doesn't exist delete from ***_ecms_t 删除栏目时 ...
- 记一次ifconfig命令
由于Windows 10的强制更新,原来的Virtual box Host-Only驱动莫名奇妙的不见了,于是上网找各种解决方案: 1.重新生成虚拟网卡适配器:执行 VBoxManage.exe ho ...
- WPF 重新启动该程序
// Restart current process Method 1 System.Windows.Forms.Application.Restart(); Application.Current. ...
- 知识积累:CA详解
所有证书有多种文件编码格式,主要包括: CER编码(规范编码格式):是BER(基本编码格式)的一个变种,比BER规定得更严格DER编码(卓越编码格式):是BER(基本编码格式)的一个变种, 比BER ...
- office2016与visio2016不能“并存”的问题分析
现象: 先安装了office2016专业增强版,再安装visio2016时出现提示 搜集了相关资料,可以通俗的理解为:已经安装了离线客户端版的office后,不能再安装在线版visio. 之后,将of ...
- Scss开发临时学习过程
SCSS语法: 假设变量申明带有!default,那么如果在此申明之前没有这个变量的申明,则用这个值,反之如果之前有申明,则用申明的值. ‘...’传递多个参数: @mixin box-shadow( ...
- MVC+EasyUI 菜单导航的实现
一个简单的使用mvc+easyUi 动态菜单显示 直接上代码 前端 function initMenu() { $.get("/Admin/Home/GetNav", functi ...
- JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上 1.可以在servlet的init方法里 String path = getServletContext().getRealP ...
- subline
快捷键(preference->key bindings): [ { "keys": ["ctrl+d"], "command": & ...