Hadoop|带你对比Hadoop MapReduce与Apache Spark


文章来源:加米谷大数据
Hadoop和Spark是大数据生态系统中流行的apache项目 。 Apache Spark是对hadoop大数据生态系统的原始Hadoop MapReduce组件的改进 。 Apache Spark令人兴奋 , 因为它在内存数据集的交互式数据查询以及多遍迭代机器学习算法中提供了真正的优势 。 但是 , 关于Spark是否可以通过取代它并成为顶级大数据分析工具而对Apache Hadoop构成挑战 , 这引起了激烈的争论 。 详细说明的是关于Spark Hadoop比较的详细讨论 , 可帮助用户理解为何spark比Hadoop更快 。
Apache Spark与Hadoop大数据世界中有多种方法使Apache Hadoop成为迭代数据处理 , 交互式查询和即席查询的理想选择 。 每个Hadoop用户都知道Hadoop MapReduce框架主要用于批处理这一事实 , 因此不适合将Hadoop MapReduce用于机器学习过程 , 临时数据探索和其他类似过程 。
大多数 大数据供应商都在努力寻找可解决此难题的理想解决方案 , 这为要求非常高且受欢迎的名为Apache Spark的替代方案的出现铺平了道路 。 与MapReduce相比 , Spark使得开发完全是一项令人愉快的活动 , 并具有更好的性能执行引擎 , 同时使用相同的存储引擎Hadoop HDFS来执行海量数据集 。
Spark Hadoop比较
在我们进一步讨论什么使Hadoop MapReduce具有Apache Spark的能力之前 , 让我们简要地了解Apache Spark的实际含义 , 然后继续理解两者之间的区别 。
Hadoop的用户友好界面简介-Apache SparkSpark是由加州大学伯克利分校AMP实验室的50家公司的近250位开发人员共同开发的一种快速集群计算系统 , 它可以使数据分析变得更快 , 更容易编写和运行 。
Apache Spark是可免费下载的开放源代码 , 因此使它成为分布式编程框架(即大数据)的用户友好界面 。 Spark遵循通用执行模型 , 该模型有助于内存计算和任意运算符图的优化 , 因此与基于磁盘的引擎(如MapReduce)相比 , 查询数据变得更快 。
Apache Spark拥有一个设计良好的应用程序编程接口 , 该接口由各种并行集合组成 , 这些集合具有诸如groupByKey , Map和Reduce之类的方法 , 因此您仿佛在本地编程 。 使用Apache Spark , 您可以使用功能性编程语言Scala编写面向集合的算法 。
为什么开发Apache Spark?谷歌设想并成功实施了Hadoop MapReduce , 而Apache Hadoop是一个非常著名且广泛使用的执行引擎 。 您会发现几个应用程序 , 它们与如何将其工作分解为一系列MapReduce作业的条件相似 。 所有这些实时应用程序都必须继续运行 , 而无需进行任何更改 。
但是 , 用户一直抱怨Hadoop MapReduce存在高延迟问题 , 因为在处理和分析数据时 , 所有这些实时应用程序的批处理模式响应都非常痛苦 。
现在 , 这为Hadoop Spark铺平了道路 , 后者是继续系统 , 比Hadoop MapReduce更强大 , 更灵活 。 尽管事实可能并非所有将来的分配或现有应用程序都完全放弃Hadoop MapReduce , 但是大多数未来应用程序仍有一定余地可以利用通用执行引擎(如Hadoop Spark)附带还有更多创新功能 , 可以完成比MapReduce Hadoop更大的成就 。
Apache Spark与Hadoop-为什么Spark比hadoop快?Apache Spark是一个开源独立项目 , 旨在与HDFS共同发挥作用 。 到目前为止 , Apache Spark拥有庞大的声音贡献者和用户社区 , 这是因为使用Scala使用Spark编程更容易 , 并且比磁盘和内存中的Hadoop MapReduce框架要快得多 。
因此 , Hadoop Spark只是未来大数据应用程序的合适选择 , 这些 应用程序可能需要更低的延迟查询 , 迭代计算以及对相似数据的实时处理 。
相对于Hadoop MapReduce框架 , Hadoop Spark在其可以处理的大量计算工作负载以及执行批处理作业的速度方面具有许多优势 。
Hadoop和Spark之间的区别


推荐阅读