Spark Streaming源码解读之Executor容错安全性
本期内容 :
- Executor的WAL
- 消息重放
数据安全的角度来考虑整个Spark Streaming :
1、 Spark Streaming会不断次序的接收数据并不断的产生Job ,不断的提交Job到集群运行,至关重要的问题接收数据安全性
2、 由于Spark Streaming是基于Spark Core基础之上的,即是说运行过程中出现错误或者故障,Spark Streaming也可以借助
Spark Core中RDD的容错的能力自动的进行恢复,恢复的前提是数据的安全可靠。
所以Executor接收数据时的安全容错至关重要,在这个数据的安全容错的基础之上进行调度级别的容错基本靠Spark Core,
对于Executor的安全容错主要是数据的安全容错,计算的时候Spark Streaming是借助于Spark Core上的RDD的容错。
数据的安全容错:
1、 最天然的安全容错是副本,处理数据的时候先复制一个副本
2、接收数据时不使用副本,数据源支持重放,可以反复读取数据,如读取过去10S中的数据,出现错误可以再次读取过去10S中的数据
一、 Executor的WAL
Spark Core的BlockManager负责具体Executor上的数据读写操作,并且也是个MsteaStorageLevel的结构
借助Spark底层的存储系统BlockManager做备份的StorageLevel 。
1、BlockManagerBasedBlockHandler 副本机制
2、 WriteAheadLogBasedBlockHandler WAL日志方式
在其具体目录下会做一份日志,后续处理过程中出现问题可以基于日志恢复,日志需要写在目录下:
需要先设置写在CheckPoint的目录,目录可以有很多目录: StreamingContext.CheckPoint 在上下文中指定具体目录,
一般情况下会放在HDFS中,优势是安全,多份副本,缺点是影响性能,浪费存储空间 。
同时在WAL及BlockManager中放数据:
Executor写数据时是按照顺序的写,由于是做WAL使用不会修改数据,一般是根据索引读取,不需要全盘搜索所以读取速度非常快。
3. 具体的实现 :管理具体的WAL文件,周期性的写文件,输出时写文件,清理旧文件
备份存储总结 :
1、 基于BlockManager ,比如说两台机器中都有数据,其中一台出错了就切换到另外一台
2、 WAL方式,WAL方式比较耗时,假如你对性能要求非常苛刻的话WAL一般不是一个很好的选择,如果你能够容忍1分钟以上的延迟的话WAL往往比较安全
注意: 如果还没有来得及进行WAL的话数据可能也会丢失。
二、 支持消息重放 :
主要基于Kafka,天然就是有副本与容错的,已经作为一个存储系统了。
Kafka有Receiver的方式,Direct的方式 :
1、Receiver方式:是交给zookeeper管理的Mtdata的偏移量的如果失效后Kafka会基于Offset重新的读取,如果你读取失败此时不会给zookeeper发送ACK信号,
zookeeper就让我你并没有消费这个数据,这个是zookeeper保证的,还有个数据重复消费的问题,就是消费完了但是还没有来得及给zookeeper进行同步,可能会重复。
2、Direct方式:直接去操作Kafka ,而且是自己管理Offset ,Kafka本身就有Offset ,这种方式可以确保有且一次的操作处理,这个需要进行CheckPoint操作,较耗时间。
管理这个Offset ,Bach会调用这个方法,上次的Offset减去这次的值就可以确定此次Offset的范围数据。
Spark Streaming源码解读之Executor容错安全性的更多相关文章
- 第12课:Spark Streaming源码解读之Executor容错安全性
一.Spark Streaming 数据安全性的考虑: Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行.所以这就涉及到一个非常重要的问题数据安全性. S ...
- Spark Streaming源码解读之Driver容错安全性
本期内容 : ReceivedBlockTracker容错安全性 DStreamGraph和JobGenerator容错安全性 Driver的安全性主要从Spark Streaming自己运行机制的角 ...
- 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 ...
- 11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker: 本文将详细解析ReceiverTracker的的架构 ...
- 16.Spark Streaming源码解读之数据清理机制解析
原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) 本期内容: 一.Spark Streaming 数据清理总览 二.Spark Streami ...
- Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考
本期内容 : 数据接收架构设计模式 数据接收源码彻底研究 一.Spark Streaming数据接收设计模式 Spark Streaming接收数据也相似MVC架构: 1. Mode相当于Rece ...
- Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考
本期内容 : Receiver启动的方式设想 Receiver启动源码彻底分析 多个输入源输入启动,Receiver启动失败,只要我们的集群存在就希望Receiver启动成功,运行过程中基于每个Tea ...
随机推荐
- 为maven插件设置参数的三种方法
很多的maven插件都提供了丰富的可选参数,用户可以通过设置特定的参数值来控制maven插件的行为.设置插件参数的方法主要有三种,分别是命令行设置,POM文件中为插件设置全局参数和POM文件中为插件设 ...
- $.post() 传递多个参数.
$("#button").click(function() { /获取表单中id为idname和count的文本值付给property的两个属性 var property={&qu ...
- VMware Player安装Debian系统
尝试用虚拟机来安装Debian系统,感觉这样一来安装与卸载方便,二来也可以在Linux系统安装出现问题的情况下方便在host主机上查找解决方法,同时也避免了要重新设置分区来安装Linux系统(双系统的 ...
- unity, 按类型查找文件
- 虚幻4外包团队-推荐非常全面的的Unreal教程
<Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark 课程分类:.net 适合人群:初级 课时数 ...
- Lab_4_SysOps_Monitoring_Linux_v2.5
System Operations - Lab 4: Monitoring with CloudWatch (Linux) - 2.5 ================================ ...
- PHP入门part4
字符串函数 strlen(string); 获取字符串的长度,这里的长度是指该字符串的字节长度:!!utf-8里英文字母和符号占1个字节,中文是占3个字节. substr(string,number1 ...
- ios webview 只能播放带域名的视频连接好奇怪!
- (void)loadWebView { UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , SCREEN_WI ...
- js运动框架之掉落的扑克牌(重心、弹起效果)
玩过电脑自带纸牌游戏的同志们应该都知道,游戏过关后扑克牌会依次从上空掉落,落下后又弹起,直至"滚出"屏幕. 效果如图: 这个案例的具体效果就是:点击开始运动,纸牌会从右上角掉 ...
- Android 通过广播获取网络状态
Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ...