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

下载本文档

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

文档简介

1、Apache Spark 与 Hadoop MapReduce 的五个主要区别:1、Apache Spark 可能比 Hadoop MapReduce 快 100 倍。2、Apache Spark使用内存,并且不依赖于Hadoop的两阶段范式。3、Apache Spark适用于可以全部放入服务器内存的较小数据集。4、Hadoop处理海量数据集更具成本效益。5、Apache Spark 现在比 Hadoop MapReduce 更受欢迎。多年来,Hadoop 一直是大数据无可争议的首选 直到Spark出现。自2014年首次发布以来,Apache Spark 一直在点燃大 数据世界。凭借Spark

2、便捷的API和承诺的速度比Hadoop MapReduce快100倍,一些分析人士认为,Spark标志着大数据 新时代的到来。Spark是一个开源数据处理框架,如何能够如此快速地处理所有这些信息?秘诀在于Spark在集群上运行在内存中,它不依赖 于Hadoop的MapReduce两阶段范式。这使得重复访问相同数据的速度更快。Spark可以作为独立应用程序运行,也可以在 Hadoop YARN之上运行,它可以直接从HDFS读取数据。雅虎、英特尔、百度、Yelp和Zillow等数十家主要科技公司已经 将Spark作为其技术堆栈的一部分。虽然Spark似乎注定要取代Hadoop MapReduce,

3、但您现在还不应该指望MapReduce。在这篇文章中,我们将比较这两个平台, 看看Spark是否真的非常有优势。什么是 Apache Spark?Apache Spark是“用于大规模数据处理的统一分析引擎”。Spark由非营利性的Apache Software Foundation维护,该基金会 已经发布了数百个开源软件项目。自项目启动以来,已有1200多名开发人员为Spark做出了贡献。Spark最初是在加州大学伯克利分校的AMPLab开发的,于2010年首次作为开源项目发布。Spark使用Hadoop MapReduce 分布式计算框架作为其基础。Spark旨在改进MapReduce项目

4、的几个方面,例如性能和易用性,同时保留MapReduce的许 多优点。Spark包括一个核心数据处理引擎,以及用于SQL、机器学习和流处理的库。凭借适用于Java、Scala、Python和R的API, Spark在开发人员中享有广泛的吸引力一一为其赢得了大数据处理领域“瑞士军刀”的美誉。什么是 Hadoop MapReduce?Hadoop MapReduce将自己描述为“一个用于轻松编写应用程序的软件框架,该应用程序以可靠、容错的方式在大型商用硬件集 群(数千个节点)上并行处理大量数据(多TB数据集)。”MapReduce范式由两个顺序任务组成:Map和Reduce(因此得名)。Map过滤

5、和排序数据,同时将其转换为键值对。然后, Reduce接受此输入并通过对数据集执行某种汇总操作来减小其大小。MapReduce可以通过分解大型数据集并并行处理它们来极大地加速大数据任务。MapReduce范式由Google员工Jeff Dean 和Sanjay Ghemawat于2004年首次提出;后来它被整合到Apache的Hadoop框架中以进行分布式处理。Spark 和 MapReduce 的区别Apache Spark和 Hadoop MapReduce之间的主要区别是:性能易于使用数据处理安全然而,Spark和MapReduce之间也有一些相似之处这并不奇怪,因为Spark使用Map

6、Reduce作为其基础。Spark和MapReduce的相似点包括:成本兼容性容错下面,我们将在每个部分详细介绍Spark和MapReduce之间的差异(以及相似之处)。Spark VS MapReduce:性能Apache Spark在随机存取存储器(RAM)中处理数据,而Hadoop MapReduce在执行映射或归约操作后将数据持久化回磁盘。 那么理论上,Spark的性能应该优于Hadoop MapReduce。尽管如此,Spark需要大量内存。与标准数据库非常相似,Spark将 进程加载到内存中并保留在那里,直到进一步通知以进行缓存。如果您在Hadoop YARN上运行Spark和其他

7、需要资源的服务, 或者如果数据太大而无法完全放入内存,那么Spark可能会遭受严重的性能下降。MapReduce会在作业完成后立即终止其进程,因此它可以轻松地与性能差异很小的其他服务一起运行。对于需要多次传递相同数据的迭代计算,Spark具有优势。但是,当涉及到类似ETL的一次性作业时一一例如,数据转换或数 据集成一一这正是MapReduce的设计目的。小结:当所有数据都适合内存时,Spark性能更好,尤其是在专用集群上。Hadoop MapReduce专为无法放入内存的数据而设 计,并且可以与其他服务一起很好地运行。Spark VS Hadoop MapReduce:易用性Spark为Jav

8、a、Scala和Python提供了预构建的API,还包括用于SQL的Spark SQL (以前称为Shark)。由于Spark的简 单构建块,编写用户定义的函数很容易。Spark甚至包括用于运行命令并立即反馈的交互模式。MapReduce是用Java编写的,并且非常难以编程。Apache Pig让它变得更容易(尽管它需要一些时间来学习语法),而Apache Hive则增加了 SQL兼容性。一些Hadoop工具也可以在没有任何编程的情况下运行MapReduce作业。此外,虽然Hive包含命令行界面,但MapReduce没有交互模式。Apache Impala和Apache Tez等项目希望将完整

9、的交互式 查询引入Hadoop。在安装和维护方面,Spark 不受 Hadoop 的约束。Spark 和 Hadoop MapReduce 都包含在 Hortonworks (HDP 3.1)和 Cloudera (CDH 5.13)的发行版中。小结:Spark更易于编程,并且包含交互模式。Hadoop MapReduce更难编程,但有几个工具可以使它更容易。Spark VS Hadoop MapReduce:成本Spark和MapReduce是开源解决方案,但您仍然需要在机器和人员上花钱。Spark和MapReduce都可以使用商品服务器并在 云上运行。此外,这两种工具都有相似的硬件要求:S

10、park集群中的内存至少应该与您需要处理的数据量一样大,因为数据必须适合内存才能获得最佳性能。如果您需要处理大量数 据,Hadoop肯定是更便宜的选择,因为硬盘空间比内存空间便宜得多。另一方面,考虑到Spark和MapReduce的性能,Spark应该更划算。Spark需要更少的硬件来更快地执行相同的任务,尤其 是在计算能力按使用付费的云服务器上。人员配备问题呢?尽管Hadoop自2005年就已经存在,但市场上仍然缺乏MapReduce专家。根据Gartner的一份研究报告, 57%的使用Hadoop的组织表示“获得必要的技能和能力”是他们最大的Hadoop挑战。那么这对于自2010年才出现的

11、Spark来说意味着什么呢?虽然它可能有更快的学习曲线,但Spark也缺乏合格的专家。好消 息是,有大量Hadoop即服务产品和基于Hadoop的服务(如Integrate.io自己的数据集成服务),这有助于缓解这些硬件和 人员配备要求。同时,Spark即服务选项可通过Amazon Web Services等提供商获得。小结:根据基准,Spark更具成本效益,但人员配备成本可能更高。Hadoop MapReduce可能会更便宜,因为可用的人员更多, 而且对于海量数据量来说可能更便宜。Spark VS Hadoop MapReduce:兼容性Apache Spark可以作为独立应用程序在Hado

12、op YARN或Apache Mesos内部部署或云中运行。Spark支持实现Hadoop输入 格式的数据源,因此它可以与Hadoop支持的所有相同数据源和文件格式集成。Spark还通过JDBC和ODBC与商业智能工具一起工作。底线:Spark对各种数据类型和数据源的兼容性与Hadoop MapReduce相同。Spark vs Hadoop MapReduce:数据处理Spark可以做的不仅仅是简单的数据处理:它还可以处理图形,它包括MLlib机器学习库。由于其高性能,Spark可以进行实 时处理和批处理。Spark提供了一个“一刀切”的平台供您使用,而不是在不同的平台上拆分任务,这会增加您

13、的IT复杂性。Hadoop MapReduce非常适合批处理。如果你想要一个实时选项,你需要使用另一个平台,比如Impala或Apache Storm,而对 于图形处理,你可以使用Apache Giraph。MapReduce曾经有Apache Mahout用于机器学习,但后来被Spark和H2O抛弃 了。小结:Spark是数据处理的瑞士军刀,而Hadoop MapReduce是批处理的突击刀。Spark vs Hadoop MapReduce:容错Spark具有每个任务的重试和推测执行,就像MapReduce 一样。尽管如此,MapReduce在这里有一点优势,因为它依赖于硬 盘驱动器,而不

14、是RAM。如果MapReduce进程在执行过程中崩溃,它可以从中断的地方继续,而Spark必须从头开始处理。小结:Spark和Hadoop MapReduce都具有良好的容错性,但Hadoop MapReduce的容错性稍强一些。Spark VS Hadoop MapReduce:安全性在安全性方面,与MapReduce相比,Spark没有那么先进。事实上,Spark中的安全性默认设置为“关闭”,这会使您容易受 到攻击。RPC通道支持通过共享密钥在Spark中进行身份验证。Spark将事件日志记录作为一项功能,并且可以通过javax servlet过滤器保护 Web UI。此外,由于Spark

15、可以运行在YARN上并使用HDFS,因此还可以享受Kerberos身份验证、 HDFS文件权限以及节点之间的加密。Hadoop MapReduce可以享受所有Hadoop安全优势并与Hadoop安全项目集成,例如Knox Gateway和 Apache Sentry。旨在 提高Hadoop安全性的Project Rhino仅在添加Sentry支持方面提到了 Spark。否则,Spark开发人员将不得不自己提高Spark 的安全性。小结:与具有更多安全功能和项目的MapReduce相比,Spark安全性仍然欠发达。Spark的常用场景虽然两者都是大规模数据处理的强大选项,但某些情况下,其中一种比

16、另一种更理想。流数据处理随着公司走向数字化转型,他们正在寻找实时分析数据的方法。Spark的内存数据处理使其成为处理流数据的理想选择。Spark Streaming是Spark的一个变体,它使这个用例成为可能。那么,公司可以通过哪些方式利用Spark Streaming?流式ETL -在传统的ETL过程中,数据被读取、转换为兼容格式并保存到目标数据存储中。使用Streaming ETL的过程效 率更高,因为数据在保存到目标数据存储之前会在内存中不断清理和聚合。数据丰富一一公司在尝试适应和提供更增强的客户体验时处于不断变化的状态。通过将实时数据与静态数据相结合,公司可以 构建更可靠的客户画像,从

17、而为他们提供个性化体验。触发事件检测一一实时响应事件的能力是一项重要的业务能力,有助于提高敏捷性和适应变化的能力。借助Spark Streaming, 公司可以实时分析数据,以识别需要立即关注的异常活动。机器学习在预测分析方面,Spark的机器学习库(MLib)提供了一套强大的工具,可以轻松完成它。当用户对一组数据进行重复查询时, 他们本质上是在构建类似于机器学习的算法。例如,机器学习可以帮助公司出于营销目的进行客户细分。它还可以帮助执行情 绪分析。交互式查询想象一下能够对实时数据执行交互式查询。从本质上讲,您可以分析大型数据集,而无需依赖外部数据存储来处理信息。使用 Spark Stream

18、ing,您可以查询数据流,而无需将其持久化到外部数据库。MapReduce的常用场景当处理对于内存中操作来说太大的数据时,MapReduce是要走的路。因此,MapReduce最适合处理大型数据集。处理大型数据集(PB或TB)考虑到实施和维护所需的时间和费用,千兆字节大小不足以证明MapReduce的合理性。希望管理PB或TB数据的组织是 MapReduce的理想选择。以不同格式存储数据公司可以使用MapReduce处理多种文件类型,例如文本、图像、纯文本等。由于这些文件对于内存中的处理来说太大了,使用 MapReduce进行批处理更经济。数据处理MapReduce具有对大型数据集执行基本和复

19、杂分析的强大功能。通过使用基于磁盘的存储而不是内存中的处理,对大型数据集 进行汇总、过滤和连接等任务的效率要高得多。Spark 与 Hadoop MapReduce 趋势随着公司寻找在拥挤的市场中保持竞争力的新方法,他们将需要适应即将到来的数据管理趋势。这些趋势包括:XOps -使用DevOps的最佳实践,XOps的目标是在数据管理过程中实现可靠性、可重用性和可重复性。Data Fabric -作为一个架构框架,Data Fabric的目标是在一个无缝的数据管理平台中结合多种类型的数据存储、分析、处理 和安全性数据分析作为核心业务功能-传统上,数据管理由一个单独的团队处理,该团队分析数据并将其提供给关键业务领导者。然 而,一种新方法将这些数据直接交到组织领导者手中,这样他们就可以立即访问这些信息以进行决策。结

温馨提示

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

评论

0/150

提交评论