提到Spark Streaming

提到Spark Streaming

ID:37769023

大小:26.77 KB

页数:6页

时间:2019-05-30

提到Spark Streaming_第1页
提到Spark Streaming_第2页
提到Spark Streaming_第3页
提到Spark Streaming_第4页
提到Spark Streaming_第5页
资源描述:

《提到Spark Streaming》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、提到SparkStreaming,我们不得不说一下BDAS(BerkeleyDataAnalyticsStack),这个伯克利大学提出的关于数据分析的软件栈。从它的视角来看,目前的大数据处理可以分为如以下三个类型。•复杂的批量数据处理(batchdataprocessing),通常的时间跨度在数十分钟到数小时之间。•基于历史数据的交互式查询(interactivequery),通常的时间跨度在数十秒到数分钟之间。•基于实时数据流的数据处理(streamingdataprocessing),通常的时间跨度在数百毫秒到数秒之间。目前已有很多相对成熟

2、的开源软件来处理以上三种情景,我们可以利用MapReduce来进行批量数据处理,可以用Impala来进行交互式查询,对于流式数据处理,我们可以采用Storm。对于大多数互联网公司来说,一般都会同时遇到以上三种情景,那么在使用的过程中这些公司可能会遇到如下的不便。•三种情景的输入输出数据无法无缝共享,需要进行格式相互转换。•每一个开源软件都需要一个开发和维护团队,提高了成本。•在同一个集群中对各个系统协调资源分配比较困难。BDAS就是以Spark为基础的一套软件栈,利用基于内存的通用计算模型将以上三种情景一网打尽,同时支持Batch、Intera

3、ctive、Streaming的处理,且兼容支持HDFS和S3等分布式文件系统,可以部署在YARN和Mesos等流行的集群资源管理器之上。BDAS的构架如图1所示,其中Spark可以替代MapReduce进行批处理,利用其基于内存的特点,特别擅长迭代式和交互式数据处理;Shark处理大规模数据的SQL查询,兼容Hive的HQL。本文要重点介绍的SparkStreaming,在整个BDAS中进行大规模流式处理。SparkStreaming构架•计算流程:SparkStreaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spa

4、rk,也就是把SparkStreaming的输入数据按照batchsize(如1秒)分成一段一段的数据(DiscretizedStream),每一段数据都转换成Spark中的RDD(ResilientDistributedDataset),然后将SparkStreaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备。图2显示了SparkStreaming的整个流

5、程。•容错性:对于流式计算来说,容错性至关重要。首先我们要明确一下Spark中RDD的容错机制。每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(lineage),所以只要输入数据是可容错的,那么任意一个RDD的分区(Partition)出错或不可用,都是可以利用原始输入数据通过转换操作而重新算出的。•对于SparkStreaming来说,其RDD的传承关系如图3所示,图中的每一个椭圆形表示一个RDD,椭圆形中的每个圆形代表一个RDD中的一个Partition,图中的每一列的多个RDD表示一个DStream(图中有

6、三个DStream),而每一行最后一个RDD则表示每一个BatchSize所产生的中间结果RDD。我们可以看到图中的每一个RDD都是通过lineage相连接的,由于SparkStreaming输入数据可以来自于磁盘,例如HDFS(多份拷贝)或是来自于网络的数据流(SparkStreaming会将网络输入数据的每一个数据流拷贝两份到其他的机器)都能保证容错性。所以RDD中任意的Partition出错,都可以并行地在其他机器上将缺失的Partition计算出来。这个容错恢复方式比连续计算模型(如Storm)的效率更高。•实时性:对于实时性的讨论,会

7、牵涉到流式处理框架的应用场景。SparkStreaming将流式计算分解成多个SparkJob,对于每一段数据的处理都会经过SparkDAG图分解,以及Spark的任务集的调度过程。对于目前版本的SparkStreaming而言,其最小的BatchSize的选取在0.5~2秒钟之间(Storm目前最小的延迟是100ms左右),所以SparkStreaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。•扩展性与吞吐量:Spark目前在EC2上已能够线性扩展到100个节点(每个节点4Core),可以以数秒的延迟处理

8、6GB/s的数据量(60Mrecords/s),其吞吐量也比流行的Storm高2~5倍,图4是Berkeley利用WordCount和Grep两个用例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。