流式大数据处理的三种框架:StormSpark和Samza

上传人:孙哥 文档编号:171655223 上传时间:2022-11-28 格式:DOCX 页数:6 大小:182.85KB
收藏 版权申诉 举报 下载
流式大数据处理的三种框架:StormSpark和Samza_第1页
第1页 / 共6页
流式大数据处理的三种框架:StormSpark和Samza_第2页
第2页 / 共6页
流式大数据处理的三种框架:StormSpark和Samza_第3页
第3页 / 共6页
资源描述:

《流式大数据处理的三种框架:StormSpark和Samza》由会员分享,可在线阅读,更多相关《流式大数据处理的三种框架:StormSpark和Samza(6页珍藏版)》请在装配图网上搜索。

1、流式大数据处理的三种框架Storm,Spark 和 Samza摘要:许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对Storm、Spark 和Samza等三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分 别进行简单介绍,然后尝试快速、高度概述其异同。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(opology)。这个 拓扑将会被提交给集群,由集群中的主控节点(master node )分发代码,将任务分配给工 作节点(worker

2、node)执行。一个拓扑中包括spout和bolt两种角色,其中spout发送消 息,负责将数据流以tuple元组的形式发送出去;而bolt则负责转换这些数据流,在bolt 中可以完成计算、过滤等操作,bolt自身也可以随机将数据发送给其他bolt。由spout发射 出的tuple是不可变数组,对应着固定的键值对。MimbusItaskSupMeerSpoutffurkar nodesAPACHESTORM-BolrtApache SparkSpark Streaming 是核心 Spark API 的一个扩展,它并不会像 Storm 那样一次一个地处理数 据流,而是在处理前按时间间隔预先将其

3、切分为一段一段的批处理作业。Spark针对持续性 数据流的抽象称为DStream (DiscretizedStream), 个DStream是一个微批处理(micro-batching)的RDD (弹性分布式数据集);而RDD则是一种分布式数据集,能够 以两种方式并行运作,分别是任意函数和滑动窗口数据的转换。RODwoAer nodesSpa聚Streatninj?宀cacheK-tlCUECI7op ra tions直 limeD Stream- WindowedDStream -.Original 1 * 1RDO 2R.DD- timDStahrt- TfsrietofrrdRDD ti

4、me 2中;EGHlMtd Ik sai kXCkjHDrCluster Manager iSdeaaj YARNSDD bme 3Apache SamzaSamza处理数据流时,会分别按次处理每条收到的消息。Samza的流单位既不是元组,也 不是Dstream,而是一条条消息。在Samza中,数据流被切分开来,每个部分都由一组只 读消息的有序数列构成,而这些消息每条都有一个特定的ID(offset)。该系统还支持批处 理,即逐次处理同一个数据流分区的多条消息。Samza的执行与数据流模块都是可插拔式 的,尽管Samza的特色是依赖Hadoop的Yarn (另一种资源调度器)和Apache K

5、afka。028335aInpul : ;S(r亡 RE:J5 6YARNOuI|Xj1 Slr?am gChangeto Slreftm 目且目Stimsa JqIjPartitioned StreamparlilCn 04 MewKafkaparcel io ri 2口 artilia n 1TaskTaskssanira共同之处以上三种实时计算系统都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,它 们的共同特色在于:允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算 机上并行运行。此外,它们都提供了简单的API来简化底层实现的复杂程度。三种框架的术语名词不同,但是其

6、代表的概念十分相似:StormSparkSamza$tre-am Sa uirceSpautsRaeeirsConsumers$trann PrimitfwTupleMessageStream ComputationBeltsTranitormatiflns YVi ndow operations对比图面表格总结了一些不同之处:StD-rmSparkSamzaAt Leasl OnesSub SecondDelivery SemanticsExactly OnceExcept in samfrStateManagementStatefulsia1c strafe&aiefLildmbetfde

7、a k&y-valdE storeL 血 ncySub SecondDepending on baich sizeLanguage SupportJVM-la-nuage cml/At L&asl OnceExactljF-Once with Tfiden!StatelessRdH YDN own or use TnderstJVWNgngu 曲臥Ruby PythonJav5c:npt. PedStalja. Jawa. PythanScala Java数据传递形式分为三大类:1. 最多一次(At-most-onee):消息可能会丢失,这通常是最不理想的结果。2. 最少一次(At-least

8、-onee):消息可能会再次发送(没有丢失的情况,但是会产生 冗余)。在许多用例中已经足够。3. 恰好一次(Exactly-onee):每条消息都被发送过一次且仅仅一次(没有丢失,没 有冗余)。这是最佳情况,尽管很难保证在所有用例中都实现。另一个方面是状态管理:对状态的存储有不同的策略,Spark Streaming将数据写入分布式 文件系统中(例如HDFS); Samza使用嵌入式键值存储;而在Storm中,或者将状态管 理滚动至应用层面,或者使用更高层面的抽象Tride nt。用例这三种框架在处理连续性的大量实时数据时的表现均出色而高效,那么使用哪一种呢?选择 时并没有什么硬性规定,最多就

9、是几个指导方针。如果你想要的是一个允许增量计算的高速事件处理系统,Storm会是最佳选择。它可以应对 你在客户端等待结果的同时,进一步进行分布式计算的需求,使用开箱即用的分布式RPC(DRPC)就可以了。最后但同样重要的原因:Storm使用Apache Thrift,你可以用任何编 程语言来编写拓扑结构。如果你需要状态持续,同时/或者达到恰好一次的传递效果,应当 看看更高层面的Trde nt API,它同时也提供了微批处理的方式。使用 Storm 的公司有:Twitter,雅虎,Spotify 还有 The Weather Channel 等。说到微批处理,如果你必须有状态的计算,恰好一次的递

10、送,并且不介意高延迟的话,那么 可以考虑Spark Streaming,特别如果你还计划图形操作、机器学习或者访问SQL的话, Apache Spark 的 stack 允许你将一些 library 与数据流相结合(Spark SQL,Mllib, GraphX), 它们会提供便捷的一体化编程模型。尤其是数据流算法(例如:K均值流媒体)允许Spark 实时决策的促进。使用Spark的公司有:亚马逊,雅虎,NASA JPL, eBay还有百度等。如果你有大量的状态需要处理,比如每个分区都有许多十亿位元组,那么可以选择Samza。 由于Samza将存储与处理放在同一台机器上,在保持处理高效的同时,

11、还不会额外载入内 存。这种框架提供了灵活的可插拔API :它的默认executio n、消息发送还有存储引擎操作 都可以根据你的选择随时进行替换。此外,如果你有大量的数据流处理阶段,且分别来自不 同代码库的不同团队,那么Samza的细颗粒工作特性会尤其适用,因为它们可以在影响最 小化的前提下完成增加或移除的工作。使用 Samza 的公司有:Linkedln, Intuit, Metamarkets,Quantiply, Fortscale 等。结论本文中我们只对这三种Apache框架进行了简单的了解,并未覆盖到这些框架中大量的功能 与更多细微的差异。同时,文中这三种框架对比也是受到限制的,因为这些框架都在一直不 断的发展,这一点是我们应当牢记的。原文链接:Streaming Big Data: Storm, Spark and Samza (编译/孙薇责编凋建丁) 本文为CSDN编译整理,未经允许不得转载,如需转载请联系market#(#换成)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!