Spark Streaming 对数据流的“批处理”不是“流处理”的五大理由.docVIP

Spark Streaming 对数据流的“批处理”不是“流处理”的五大理由.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spark Streaming 对数据流的“批处理”不是“流处理”的五大理由

Spark Streaming 对数据流的“批处理”不是“流处理”的五大理由 原文作者:Ronnie Beggs ?本文由36大数据翻译组-Teradata数据挖掘顾问谢博翻译,转载必须获得本站、原作者、译者的同意,拒绝任何不表明译者及来源的转载! 目前存在着很多种在实时数据被保存进数据库之前系统对这些数据进行处理的方式。例如,现在最常见的两个开源平台就是Apache Storm 和 Apache Spark(带有它自身Spark Streaming框架),它们都拥有一种非常特有的处理数据流的方法。Storm,像SQLstream Blaze、IBM InfoSphere Streams还有其它一些产品,是真正的record-by-record流处理引擎。而其它的像Apache Spark则使用一种不同的方式,通过把事件收集起来,然后进行批处理。在考虑这些非常容易混淆的范例的时候,我对需要重点考虑的事项做了如下总结: #1流处理方式与批处理方式在数据流处理的对比 在流处理的过程中有两个基本的特征。第一,系统里面的每一条记录都要有一个时间戳,99%的记录都是把数据产生的那个时间作为时间戳;第二,每一条记录都是当它到达的时候就被处理。这两个特性可以保证系统能够根据时间的先后对每一条记录进行反应,并且把延迟降低到毫秒级。相比而言,像Spark Streaming这种把数据流批处理的方法,每一个批处理操作都包含了一个批处理周期到达的事件的集合(不管这些数据实际是什么时候产生的)。这种方法虽然对简单计数或者ETL数据进Hadoop是有好处的,但是,由于缺乏record-by-record的处理机制,则无法实现流处理以及时间序列分析。 #2处理不按时间到达的数据对于基于批处理的方法来说是一个大问题 在真实世界中处理数据是一个非常麻烦的事情。数据一般的质量都不高,记录可能会丢失,并且数据到达的时间可能不按正常的时间(产生)顺序。从不同的远程数据源到来的数据可能是在同一时间产生的,但是由于网络或者其他一些原因,一些数据流可能延迟到达。对于批处理的储存来说,这些数据流的问题不能够很容易被解决,对于检测丢失数据、数据间隙还有纠正数据到达的顺序等操作会无法实现或者会花费大量的代价(计算资源并且影响性能)。但对于record-by-record流处理平台,由于每个记录都有自己的时间戳,并且是单独处理,因此上面的问题很容易得到解决。 #3 批的长度约束了基于窗口的分析 任何一个使用基于批处理数据流方式的系统都会由于批的长度而被限制了处理的粒度。Window 操作可以通过对一系列的微批次进行迭代来进行模拟,很大程度上就像对存储数据的静态查询操作。但是,这样对处理资源来说代价非常大并且会进一步加大计算开销。另外,处理过程也会被数据的到达时间限制(而不是数据产生的时间)。 #4 Spark声称是比Storm要快但还是会有性能限制 Spark Streaming的Java 或者Scala-based的运行宣称要比使用WordCount基准的Apache Storm快4到8倍。尽管Apache Storm可以通过向外扩展大量的服务器来提升总体性能,但是由于它的流处理使用标准,它的每一台服务器的性能是有限的。(而不断扩展服务器的这个操作会增加花销,包括在服务器成本、能源成本、冷却成本上,另外,这也是增加分布式系统复杂性的一个因素)。目前,Spark Streaming的性能可以通过使用大量的批次来改善,这可以增加性能,但是大量的批次会让Spark Streaming远离实时分析,而成为了批处理存储模式,并且会减弱处理流处理、实时处理、时序分析等问题的能力。 #5 从scratch编写流处理操作并不容易 基于批处理的平台例如Spark Streaming,对于到达数据的聚合以及计数只是提供了很有限的一些流处理函数的库。在Spark Streaming上写一个流分析应用需要在Java or Scala上去写代码。处理数据流使用的是不同的范式,而且,Java的紧凑程度比SQL低50倍,这意味着需要写更多的代码。Java 和 Scala 需要有效的垃圾收集机制,而这些机制在内存处理上面是非常低效以及麻烦的。 摘自:36大数据 学数据分析、找行业报告、招调查人才可移步一起调研网 一个属于调研行业的B2B网站 国内最具权威的市场调研门户网站之一

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档