生产环境选型考虑:Spark 全方位对比 Hadoop MapReduce_第1页
生产环境选型考虑:Spark 全方位对比 Hadoop MapReduce_第2页
生产环境选型考虑:Spark 全方位对比 Hadoop MapReduce_第3页
生产环境选型考虑:Spark 全方位对比 Hadoop MapReduce_第4页
生产环境选型考虑:Spark 全方位对比 Hadoop MapReduce_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ApacheSparkApacheSpark和HadoopMapReduce之间的主要区别是:ApacheSparkApacheSpark和HadoopMapReduce之间的主要区别是:ApacheSpark与HadoopMapReduce的五个主要区别:1、ApacheSpark可能比HadoopMapReduce快100倍。2、ApacheSpark使用内存,并且不依赖于Hadoop的两阶段范式。3、ApacheSpark适用于可以全部放入服务器内存的较小数据集。4、Hadoop处理海量数据集更具成本效益。5、ApacheSpark现在比HadoopMapReduce更受欢迎。多年来,Hadoop—直是大数据无可争议的首选直到Spark出现。自2014年首次发布以来,ApacheSpark一直在点燃大数据世界。凭借Spark便捷的API和承诺的速度比HadoopMapReduce快100倍,一些分析人士认为,Spark标志着大数据新时代的到来。Spark是一个开源数据处理框架,如何能够如此快速地处理所有这些信息?秘诀在于Spark在集群上运行在内存中,它不依赖于Hadoop的MapReduce两阶段范式。这使得重复访问相同数据的速度更快。Spark可以作为独立应用程序运行,也可以在HadoopYARN之上运行,它可以直接从HDFS读取数据。雅虎、英特尔、百度、Yelp和Zillow等数十家主要科技公司已经将Spark作为其技术堆栈的一部分。虽然Spark似乎注定要取代HadoopMapReduce,但您现在还不应该指望MapReduce。在这篇文章中,我们将比较这两个平台,看看Spark是否真的非常有优势。什么是ApacheSpark?ApacheSpark是“用于大规模数据处理的统一分析引擎”。Spark由非营利性的ApacheSoftwareFoundation维护,该基金会已经发布了数百个开源软件项目。自项目启动以来,已有1200多名开发人员为Spark做出了贡献。Spark最初是在加州大学伯克利分校的AMPLab开发的,于2010年首次作为开源项目发布。Spark使用HadoopMapReduce分布式计算框架作为其基础。Spark旨在改进MapReduce项目的几个方面,例如性能和易用性,同时保留MapReduce的许多优点。Spark包括一个核心数据处理引擎,以及用于SQL、机器学习和流处理的库。凭借适用于Java、Scala、Python和R的API,Spark在开发人员中享有广泛的吸引力一一为其赢得了大数据处理领域“瑞士军刀”的美誉。什么是HadoopMapReduce?HadoopMapReduce将自己描述为“一个用于轻松编写应用程序的软件框架,该应用程序以可靠、容错的方式在大型商用硬件集群(数千个节点)上并行处理大量数据(多TB数据集)。”MapReduce范式由两个顺序任务组成:Map和Reduce(因此得名)。Map过滤和排序数据,同时将其转换为键值对。然后,Reduce接受此输入并通过对数据集执行某种汇总操作来减小其大小。MapReduce可以通过分解大型数据集并并行处理它们来极大地加速大数据任务。MapReduce范式由Google员工JeffDean和SanjayGhemawat于2004年首次提出;后来它被整合到Apache的Hadoop框架中以进行分布式处理。Spark和MapReduce的区别>性能>易于使用>数据处理>安全然而,Spark和MapReduce之间也有一些相似之处这并不奇怪,因为Spark使用MapReduce作为其基础。Spark和MapReduce的相似点包括:>成本>兼容性>容错下面,我们将在每个部分详细介绍Spark和MapReduce之间的差异(以及相似之处)。SparkVSMapReduce:性能ApacheSpark在随机存取存储器(RAM)中处理数据,而HadoopMapReduce在执行映射或归约操作后将数据持久化回磁盘。那么理论上,Spark的性能应该优于HadoopMapReduce。尽管如此,Spark需要大量内存。与标准数据库非常相似,Spark将进程加载到内存中并保留在那里,直到进一步通知以进行缓存。如果您在HadoopYARN上运行Spark和其他需要资源的服务,或者如果数据太大而无法完全放入内存,那么Spark可能会遭受严重的性能下降。MapReduce会在作业完成后立即终止其进程,因此它可以轻松地与性能差异很小的其他服务一起运行。对于需要多次传递相同数据的迭代计算,Spark具有优势。但是,当涉及到类似ETL的一次性作业时一一例如,数据转换或数据集成这正是MapReduce的设计目的。小结:当所有数据都适合内存时,Spark性能更好,尤其是在专用集群上。HadoopMapReduce专为无法放入内存的数据而设计,并且可以与其他服务一起很好地运行。SparkVSHadoopMapReduce:易用性Spark为Java、Scala和Python提供了预构建的API,还包括用于SQL的SparkSQL(以前称为Shark)。由于Spark的简单构建块,编写用户定义的函数很容易。Spark甚至包括用于运行命令并立即反馈的交互模式。MapReduce是用Java编写的,并且非常难以编程。ApachePig让它变得更容易(尽管它需要一些时间来学习语法),而ApacheHive则增加了SQL兼容性。一些Hadoop工具也可以在没有任何编程的情况下运行MapReduce作业。此外,虽然Hive包含命令行界面,但MapReduce没有交互模式。ApacheImpala和ApacheTez等项目希望将完整的交互式查询引入Hadoop。在安装和维护方面,Spark不受Hadoop的约束。Spark和HadoopMapReduce都包含在Hortonworks(HDP3.1)和Cloudera(CDH5.13)的发行版中。小结:小结:Spark是数据处理的瑞士军刀,而HadoopMapReduce是批处理的突击刀。小结:小结:Spark是数据处理的瑞士军刀,而HadoopMapReduce是批处理的突击刀。小结:Spark更易于编程,并且包含交互模式。HadoopMapReduce更难编程,但有几个工具可以使它更容易。SparkVSHadoopMapReduce:成本Spark和MapReduce是开源解决方案,但您仍然需要在机器和人员上花钱。Spark和MapReduce都可以使用商品服务器并在云上运行。此外,这两种工具都有相似的硬件要求:Spark集群中的内存至少应该与您需要处理的数据量一样大,因为数据必须适合内存才能获得最佳性能。如果您需要处理大量数据,Hadoop肯定是更便宜的选择,因为硬盘空间比内存空间便宜得多。另一方面,考虑到Spark和MapReduce的性能,Spark应该更划算。Spark需要更少的硬件来更快地执行相同的任务,尤其是在计算能力按使用付费的云服务器上。人员配备问题呢?尽管Hadoop自2005年就已经存在,但市场上仍然缺乏MapReduce专家。根据Gartner的一份研究报告,57%的使用Hadoop的组织表示“获得必要的技能和能力”是他们最大的Hadoop挑战。那么这对于自2010年才出现的Spark来说意味着什么呢?虽然它可能有更快的学习曲线,但Spark也缺乏合格的专家。好消息是,有大量Hadoop即服务产品和基于Hadoop的服务(如Integrated自己的数据集成服务),这有助于缓解这些硬件和人员配备要求。同时,Spark即服务选项可通过AmazonWebServices等提供商获得。小结:根据基准,Spark更具成本效益,但人员配备成本可能更高。HadoopMapReduce可能会更便宜,因为可用的人员更多,而且对于海量数据量来说可能更便宜。SparkVSHadoopMapReduce:兼容性ApacheSpark可以作为独立应用程序在HadoopYARN或ApacheMesos内部部署或云中运行。Spark支持实现Hadoop输入格式的数据源,因此它可以与Hadoop支持的所有相同数据源和文件格式集成。Spark还通过JDBC和ODBC与商业智能工具一起工作。底线:Spark对各种数据类型和数据源的兼容性与HadoopMapReduce相同。SparkvsHadoopMapReduce:数据处理Spark可以做的不仅仅是简单的数据处理:它还可以处理图形,它包括MLlib机器学习库。由于其高性能,Spark可以进行实时处理和批处理。Spark提供了一个“一刀切”的平台供您使用,而不是在不同的平台上拆分任务,这会增加您的IT复杂性。HadoopMapReduce非常适合批处理。如果你想要一个实时选项,你需要使用另一个平台,比如Impala或ApacheStorm,而对于图形处理,你可以使用ApacheGiraph。MapReduce曾经有ApacheMahout用于机器学习,但后来被Spark和H2O抛弃了。SparkvsHadoopMapReduce:容错ApacheSparkApacheSpark是大数据平台上闪亮的新玩具,但仍有使用HadoopMapReduce的用例。无论您选择ApacheSpark还是HadoopSpark具有每个任务的重试和推测执行,就像MapReduce一样。尽管如此,MapReduce在这里有一点优势,因为它依赖于硬盘驱动器,而不是RAM。如果MapReduce进程在执行过程中崩溃,它可以从中断的地方继续,而Spark必须从头开始处理。小结:Spark和HadoopMapReduce都具有良好的容错性,但HadoopMapReduce的容错性稍强一些。SparkVSHadoopMapReduce:安全性在安全性方面,与MapReduce相比,Spark没有那么先进。事实上,Spark中的安全性默认设置为“关闭”,这会使您容易受到攻击。RPC通道支持通过共享密钥在Spark中进行身份验证。Spark将事件日志记录作为一项功能,并且可以通过javaxservlet过滤器保护WebUI。此外,由于Spark可以运行在YARN上并使用HDFS,因此还可以享受Kerberos身份验证、HDFS文件权限以及节点之间的加密。HadoopMapReduce可以享受所有Hadoop安全优势并与Hadoop安全项目集成,例如KnoxGateway和ApacheSentry。旨在提高Hadoop安全性的ProjectRhino仅在添加Sentry支持方面提到了Spark。否则,Spark开发人员将不得不自己提高Spark的安全性。小结:与具有更多安全功能和项目的MapReduce相比,Spark安全性仍然欠发达。Spark的常用场景虽然两者都是大规模数据处理的强大选项,但某些情况下,其中一种比另一种更理想。流数据处理随着公司走向数字化转型,他们正在寻找实时分析数据的方法。Spark的内存数据处理使其成为处理流数据的理想选择。SparkStreaming是Spark的一个变体,它使这个用例成为可能。那么,公司可以通过哪些方式利用SparkStreaming?流式ETL-在传统的ETL过程中,数据被读取、转换为兼容格式并保存到目标数据存储中。使用StreamingETL的过程效率更高,因为数据在保存到目标数据存储之前会在内存中不断清理和聚合。数据丰富一一公司在尝试适应和提供更增强的客户体验时处于不断变化的状态。通过将实时数据与静态数据相结合,公司可以构建更可靠的客户画像,从而为他们提供个性化体验。触发事件检测实时响应事件的能力是一项重要的业务能力,有助于提高敏捷性和适应变化的能力。借助SparkStreaming,公司可以实时分析数据,以识别需要立即关注的异常活动。机器学习在预测分析方面,Spark的机器学习库(MLib)提供了一套强大的工具,可以轻松完成它。当用户对一组数据进行重复查询时,他们本质上是在构建类似于机器学习的算法。例如,机器学习可以帮助公司出于营销目的进行客户细分。它还可以帮助执行情绪分析。交互式查询想象一下能够对实时数据执行交互式查询。从本质上讲,您可以分析大型数据集,而无需依赖外部数据存储来处理信息。使用SparkStreaming,您可以查询数据流,而无需将其持久化到外部数据库。MapReduce的常用场景当处理对于内存中操作来说太大的数据时,MapReduce是要走的路。因此,MapReduce最适合处理大型数据集。处理大型数据集(PB或TB)考虑到实施和维护所需的时间和费用,千兆字节大小不足以证明MapReduce的合理性。希望管理PB或TB数据的组织是MapReduce的理想选择。以不同格式存储数据公司可以使用MapReduce处理多种文件类型,例如文本、图像、纯文本等。由于这些文件对于内存中的处理来说太大了,使用MapReduce进行批处理更经济。数据处理MapReduce具有对大型数据集执行基本和复杂分析的强大功能。通过使用基于磁盘的存储而不是内存中的处理,对大型数据集进行汇总、过滤和连接等任务的效率要高得多。Spark与HadoopMapReduce趋势随着公司寻找在拥挤的市场中保持竞争力的新方法,他们将需要适应即将到来的数据管理趋势。这些趋势包括:XOps-使用DevOps的最佳实践,XOps的目标是在数据管理过程中实现可靠性、可重用性和可重复性。DataFabric-作为一个架构框架,DataFabric的目标是在一个无缝的数据管理平台中结合多种类型的数据存储、分析、处理和安全性数据分析作为核心业务功能-传统上,数据

温馨提示

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

评论

0/150

提交评论