大数据Spark企业级实战版【学习笔记】-----Spark Streaming 的构架
来源:互联网 发布:惠州市干部网络培训 编辑:程序博客网 时间:2024/05/08 00:29
1.3.2.1 Spark Streaming 的构架
计算流程:Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(DiscretizedStream),每一段数据转换成Spark中的RDD,然后将Spark Streaming中对DStream的Transformation(转换)操作变为Spark中对RDD的Transformation(转换)操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备上。
Spark Streaming流程图如图1-46所示:
容错性:对于流式计算来说,容错性至关重要。每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(linage),只要输入数据是可容错的,那么任意一个RDD的分区(Partition)出错或者不可用,都是可以利用原始输入数据通过转换操作而重新算出的。
对于Spark Streaming来说,其RDD的传承关系如图1-47所示:
图中的每一个椭圆形表示一个RDD,椭圆形中的每个圆形代表一个RDD中的一个Partition(分区),图中的每一列的多个RDD表示一个DStream(图中有3个DStream),而每一行最后一个RDD则表示每一个Batch Size所产生的中间结果RDD。
图中的每一个RDD都是通过lineage相连接,由于SparkStreaming输入数据可以来自于磁盘,例如HDFS或是来自于网络的数据流(Spark Streaming会将网络输入数据的每一个数据流复制两份到其他机器)都能保证容错性。所以RDD中任意的Partition出错,都可以并行地在其他机器上将缺失的Partition计算出来。这个容错恢复方式比连续计算模型(如Storm)的效率更高。
实时性:Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过SparkDAG图分解,以及Spark的任务集的调度过程。对于目前版本的SparkStreaming而言,其最小的Batch Size的选取在0.5~2秒之间(Stor目前最小的延迟是100ms左右),所以SparkStreaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式实时计算场景。
扩展性与吞吐量:Spark目前在EC2上已经能够线性扩展到100个节点(每个节点4Core),可以以数秒的延迟处理6GB/s的数据量(60MB records/s),其吞吐量也比流行的Storm高2~5倍。图1-48是Berkeley利用WordCount和Grep两个用例所做的测试,在Grep这个测试中,Spark Streaming中的每个节点的吞吐量是670KBrecords/s,而Storm是115KBrecords/s。
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming 的构架
- 大数据Spark企业级实战版【学习笔记】----Spark Streaming
- 大数据Spark企业级实战版【学习笔记】----Spark Streaming
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming的编程模式
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming案例分析
- 大数据Spark企业级实战版【学习笔记】---Spark简介
- 大数据Spark企业级实战版【学习笔记】----Spark术语
- 大数据Spark企业级实战版【学习笔记】----Spark技术生态系统之Spark Core
- 大数据Spark企业级实战版【学习笔记】----Spark Shark& Spark SQL
- 大数据Spark企业级实战版【学习笔记】----Spark R& MLBase
- 大数据Spark企业级实战版【学习笔记】----Spark速度为何如此快
- 大数据Spark企业级实战版【学习笔记】-----交互式SQL处理框架Spark SQL
- 大数据Spark企业级实战版【学习笔记】----Tachyon& BlinkDB&Akka
- 大数据Spark企业级实战版【学习笔记】----RDD:分布式函数式编程
- 大数据Spark企业级实战版【学习笔记】---- GraphX:图像计算框架
- spark学习笔记:Spark Streaming
- spark大数据处理技术读书笔记:spark streaming学习笔记
- Spark Streaming学习笔记
- OC : NSPersonNameComponents (名字)
- 我爱代码,我爱PHP
- 炉石传说 (转化为匈牙利算法来做的)
- 学习Celery在项目中使用的总结
- Ubuntu 16.04 执行 sudo apt-get update 报错
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming 的构架
- Spark应用HanLP对中文语料进行文本挖掘--聚类
- 目标检测分割--BlitzNet: A Real-Time Deep Network for Scene Understanding
- 简单例子测试Ubuntu安装的mysql开发包SDK,附编译选项说明
- chrome jsonView插件安装
- 比特币改进协议BIP16(翻译)
- Android Studio 打包生成 apk
- 任务列表(360公司2017春招真题)
- 1-6年级奥数思维专题【附奥数知识点一笔画问题】