版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流式大数据处理的三种框架Storm,Spark和Samza摘要:许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对Storm、Spark和Samza等三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。ApacheStorm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(opology)。这个拓扑将会被提交给集群,由集群中的主控节点(masternode)分发代码,将任务分配给工作节点(workernode)执行。一个拓扑中包括spout和bolt两种角色,其中spout发送消息,负责将数据流以tuple元组的形式发送出去;而bolt则负责转换这些数据流,在bolt中可以完成计算、过滤等操作,bolt自身也可以随机将数据发送给其他bolt。由spout发射出的tuple是不可变数组,对应着固定的键值对。MimbusItaskSup^MeerSpoutffurkarnodesAPACHESTORM-MimbusItaskSup^MeerSpoutffurkarnodesAPACHESTORM-BolrtApacheSparkSparkStreaming是核心SparkAPI的一个扩展,它并不会像Storm那样一次一个地处理数据流,而是在处理前按时间间隔预先将其切分为一段一段的批处理作业。Spark针对持续性数据流的抽象称为DStream(DiscretizedStream),一个DStream是一个微批处理(micro-batching)的RDD(弹性分布式数据集);而RDD则是一种分布式数据集,能够以两种方式并行运作,分别是任意函数和滑动窗口数据的转换。RODwoAernodesSpa聚Streatninj?■宀「cache»K--tlCUECI7op«rations直limeDStream-WindowedDStream-.Original1RODwoAernodesSpa聚Streatninj?■宀「cache»K--tlCUECI7op«rations直limeDStream-WindowedDStream-.Original1®*™1RDO@2R.DD-@tim«DSt^ahrt---Tfsrietofrr^dRDD@time2中;EGHlMtdIksaik»X«CkjHDrClusterManageriSdeaajYARNSDD@bme3ApacheSamzaSamza处理数据流时,会分别按次处理每条收到的消息。Samza的流单位既不是元组,也不是Dstream,而是一条条消息。在Samza中,数据流被切分开来,每个部分都由一组只读消息的有序数列构成,而这些消息每条都有一个特定的ID(offset)。该系统还支持批处理,即逐次处理同一个数据流分区的多条消息。Samza的执行与数据流模块都是可插拔式的,尽管Samza的特色是依赖Hadoop的Yarn(另一种资源调度器)和ApacheKafka。
028335aInpul:;S(r亡RE:J56YARNOuI|Xj1Slr?amgChangeto^Slreftm目且目StimsaJqIj028335aInpul:;S(r亡RE:J56YARNOuI|Xj1Slr?amgChangeto^Slreftm目且目StimsaJqIjPartitionedStreamparlil'Cn04MewKafkaparceliori2口artilian1TaskTaskssanira共同之处以上三种实时计算系统都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,它们的共同特色在于:允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行。此外,它们都提供了简单的API来简化底层实现的复杂程度。三种框架的术语名词不同,但是其代表的概念十分相似:StormSparkStormSparkSamza$tre-amSauirceSpautsRaeei^rsConsumers$tr«annPrimitfwTuple—MessageStreamComputationBeltsTranitormatiflnsYVindowoperations对比图面表格总结了一些不同之处:StD-rmSparkSamzaAtLeaslOnesSubSecondDeliverySemanticsExactlyOnceExceptinsamfrStateManagementStatefulsia1cstrafe&[aiefLildmbetfdeak&y-valdEstoreL血ncySubSecondDependingonbaichsizeLanguageSupportJVM-la-n^uage^cml/AtL&aslOnceExactljF-OncewithTfiden!Stateless面表格总结了一些不同之处:StD-rmSparkSamzaAtLeaslOnesSubSecondDeliverySemanticsExactlyOnceExceptinsamfrStateManagementStatefulsia1cstrafe&[aiefLildmbetfdeak&y-valdEstoreL血ncySubSecondDependingonbaichsizeLanguageSupportJVM-la-n^uage^cml/AtL&aslOnceExactljF-OncewithTfiden!StatelessRdHYDNownoruseTnderstJVWNgngu曲臥RubyPythonJav^5c:npt.PedStalja.Jawa.PythanScalaJava数据传递形式分为三大类:最多一次(At-most-onee):消息可能会丢失,这通常是最不理想的结果。最少一次(At-least-onee):消息可能会再次发送(没有丢失的情况,但是会产生冗余)。在许多用例中已经足够。恰好一次(Exactly-onee):每条消息都被发送过一次且仅仅一次(没有丢失,没有冗余)。这是最佳情况,尽管很难保证在所有用例中都实现。另一个方面是状态管理:对状态的存储有不同的策略,SparkStreaming将数据写入分布式文件系统中(例如HDFS);Samza使用嵌入式键值存储;而在Storm中,或者将状态管理滚动至应用层面,或者使用更高层面的抽象Trident。用例这三种框架在处理连续性的大量实时数据时的表现均出色而高效,那么使用哪一种呢?选择时并没有什么硬性规定,最多就是几个指导方针。如果你想要的是一个允许增量计算的高速事件处理系统,Storm会是最佳选择。它可以应对你在客户端等待结果的同时,进一步进行分布式计算的需求,使用开箱即用的分布式RPC(DRPC)就可以了。最后但同样重要的原因:Storm使用ApacheThrift,你可以用任何编程语言来编写拓扑结构。如果你需要状态持续,同时/或者达到恰好一次的传递效果,应当看看更高层面的TrdentAPI,它同时也提供了微批处理的方式。使用Storm的公司有:Twitter,雅虎,Spotify还有TheWeatherChannel等。说到微批处理,如果你必须有状态的计算,恰好一次的递送,并且不介意高延迟的话,那么可以考虑SparkStreaming,特别如果你还计划图形操作、机器学习或者访问SQL的话,ApacheSpark的stack允许你将一些library与数据流相结合(SparkSQL,Mllib,GraphX),它们会提供便捷的一体化编程模型。尤其是数据流算法(例如:K均值流媒体)允许Spark实时决策的促进。使用Spark的公司有:亚马逊,雅虎,NASAJPL,eBay还有百度等。如果你有大量的状态需要处理,比如每个分区都有许多十亿位元组,那么可以选择Samza。由于Samza将存储与处理放在同一台机器上,在保持处理高效的同时,还不会额外载入内存。这种框架提供了灵活的可插拔API:它的默认execution、消息发送还有存储引擎操作都可以根据你的选择随时进行替换。此外,如果你有大量的数据流处理阶段,且分别来自不同代码库的不同团队,那么Samza的细颗粒工作特性会尤其适用,因为它们可以在影响最小化的前提下完成增加或移除的工作。使用Samza的公司有:Linkedln,Intuit,Metamarkets,Quantiply,Fortscale等。结论本文中我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江苏省扬州市广陵区树人校中考英语适应性模拟试题含答案
- 优化配电工程监理策划
- 2026 学龄前自闭症社交适配课件
- 职场沟通技巧及成功案例分析
- 河南四市2025-2026学年高三5月质量检测(许济平洛四模)化学+答案
- 2026 学龄前自闭症情绪控制训练课件
- 2026 学龄前自闭症家庭训练课件
- 家长代表发言稿 (15篇)
- 生产仓库废旧物料处理安全自查报告
- 译林版英语五年级下册Projet1 作业单二
- 数字科创产业园项目可行性研究报告
- 民法典在国企治理中的应用与实践培训
- sm契约合同协议书
- 工业产品生产、销售单位质量安全总监、安全员培训考核题题库及答案
- 中医科普小儿推拿
- 关工委知识培训探讨课件
- 合理使用抗生素知识培训课件
- 新房验收验房清单(毛坯+精装)
- 2025年湖南高考物理试卷(原卷+答案)
- 2025 SMETA确保员工合法工作权的核查程序-SEDEX验厂专用文件(可编辑)
- 雨水改造工程施工合同
评论
0/150
提交评论