Spark Streaming源码解读之Driver容错安全性
本期内容 :
- ReceivedBlockTracker容错安全性
- DStreamGraph和JobGenerator容错安全性
Driver的安全性主要从Spark Streaming自己运行机制的角度考虑的,如对源数据保存方面使用了WAL方式,驱动层面的容错安全主要使用的是CheckPoint ,
但是仅仅是WAL和CheckPoint在生成环境下不是完全足够的。
Spark Streaming 的Driver容错为什么是这两个方面 :
1、 ReceiverBlockTracker主要管理整个Spark Streaming的运行数据的源数据的,从容错的角度讲,源数据是否很重要,否则出错的话数据都不正常何谈其它呢
2、 DStream和JobGenerator 这个是框架的核心层面,具体调度到什么层面了,这是从业务与运行的角度考虑的
Driver哪些需要维持状态的:
1、 ReceiverBlockTracker跟踪数据毫无疑问是需要维持状态,所以就需要容错
2、 DStreams表达了依赖关系,在其恢复的时候需要恢复计算逻辑级别的依赖关系
3、 JobGenerator 表明你正在基于ReceiverBlockTracker的数据及DStreams构成的依赖关系产生Job的过程,消费了哪些数据、进行到什么程度等状态部分
ReceiverBlockTracker :管理SparkStreaming的运行过程中指针指向的数据,一般都是在Executor上面的,并且把数据分配给每个Batches

Receiver接收到数据后是怎么处理的 :
1、先进行WAL(冷备份),然才会写入内存中,整个Spark Streaming作业中的调度或者Generator是基于GetReceivedBlockQueue中的数据,来观察每个Streaming接收到的数据
2、 放入内存中是被当前运行的Spark Streaming的调度器JobGenerator去使用的,JobGenerator不可能直接使用WAL,WAL是一个磁盘的存储架结构,而是使用内存的缓存数据结构。




Spark Streaming是以窗口为作业划分标志,如频率以10S,在10S时间段接收到的所有数据保存在StreamIdToUnallocatedBlockQueues数据结构中,当计算时需要把,
所有的数据提取出来 ,最后就变成StreamIDToBlocks ,Spark Streaming处理中可以有不同的数据来源同时进行处理 。

最终可以在AllocatedBlock 中获取数据,他有很多时间窗口的Blocks,Window操作或者状态操作都需要依赖这些信息,如果需要10分钟期间数据,根据数据结构把这些Bachelor集合起来就行了 。
随着时间的推移,会不断的产生数据,同时也不可能一直保持数据不变,需要对旧有的数据进行清理:


CheckPoint : Job开始进行一次CheckPoint,Job结束后也来一次CheckPoint



UpdateCheckPoint :


GenerateJobs :

ClearMetadata :

Spark Streaming源码解读之Driver容错安全性的更多相关文章
- Spark Streaming源码解读之Executor容错安全性
本期内容 : Executor的WAL 消息重放 数据安全的角度来考虑整个Spark Streaming : 1. Spark Streaming会不断次序的接收数据并不断的产生Job ,不断的提交J ...
- 第12课:Spark Streaming源码解读之Executor容错安全性
一.Spark Streaming 数据安全性的考虑: Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行.所以这就涉及到一个非常重要的问题数据安全性. S ...
- 11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker: 本文将详细解析ReceiverTracker的的架构 ...
- Spark Streaming源码解读之Driver中ReceiverTracker架构设计以具体实现彻底研究
本期内容 : ReceiverTracker的架构设计 消息循环系统 ReceiverTracker具体实现 一. ReceiverTracker的架构设计 1. ReceiverTracker可以以 ...
- 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 ...
- Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考
本期内容 : 数据接收架构设计模式 数据接收源码彻底研究 一.Spark Streaming数据接收设计模式 Spark Streaming接收数据也相似MVC架构: 1. Mode相当于Rece ...
- Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考
本期内容 : Receiver启动的方式设想 Receiver启动源码彻底分析 多个输入源输入启动,Receiver启动失败,只要我们的集群存在就希望Receiver启动成功,运行过程中基于每个Tea ...
随机推荐
- 学习css中得与惑
css的学习分享 所学的css知识看多,会看懂.这只是在实践中发现的问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... ...
- .net frameworkAPI文档下载地址
http://www.msdn.hk/html/2014/5.html VS2013 ILdasm 反编译工具安装在下面地址里了 C:\Program Files (x86)\Microsoft SD ...
- jmeter录制移动APP脚本
一.准备环境 准备好jmeter运行环境 在电脑端安装无线Wifi插件,保证手机与电脑处于同一个局域网中 如果本机JDK版本为1.6,则升级JDK版本至1.7,否则,在HTTPS Domains中无法 ...
- 从头开始db-oracle
rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpmrpm -ivh http: ...
- lnmp平台菜鸟入门级笔记
LNMP平台搭建 Mysql安装 MySQL安装 回复收藏 分享 1 下载MySQL数据库l到/usr/local/src/[root@xin tmp]# cd ...
- TextBlock
一.TextBlock与Lable TextBlock是比Lable更底层的控件如果用TextBlock可以完成的需求就尽量不用Lable可以稍微提升一点性能. 参考文档 二.TextBlock内容过 ...
- 承接Hololens内容定制外包
近日,微软宣布第三批微软Hololens开发者版开始发货,包括:头显.头显手提包和一个遥控器.前两批开发者版本分别在今年3月30日和5月9日开始发货的. 第三批AR头显Hololens开发者版发货 虽 ...
- MyEclipse、Eclipse复制web项目
假设现在已经有一个Java Web项目 ProjectA,现在想做另外一个项目ProjectB,它里面绝大部分功能和结构都可以复用ProjectA中的: 我们就可以通过复制项目的方法来做,具体步骤如下 ...
- 【maven】之配置开发,测试,正式环境pom.xml文件
在进行web程序开发,如果项目组没有使用自动化发布工具(jenkins + maven + svn + tomcat ),我们一般会使用maven的热部署来完成发布,在部署的过程中我们开发,测试,生产 ...
- Processing 电子罗盘校准(以 MPU9250为例)
使用Processing 软件, 通过 arduino 输入 电子罗盘的数据,通过PC端进行校准,程序如下: import processing.serial.*; Serial myPort; Ar ...