当前位置:首页 >互联网•IT > 大数据 > 大数据分析 > 正文
朋友?敌人?看Hadoop与Apache Spark如何“相爱相杀”
来源:小牛学堂  作者:小牛学堂 2016-07-22 09:47:08
无论阅读任何关于大数据的文章或是谈论有关大数据的话题,你总会听到Hadoop或是Apache Spark。它们两个有时被视为大数据领域里数据处理技术的竞争对手,但越来越多的共识是它们结合在一起才能更好地发挥各自的优势。在这篇文章里,我对它俩做了一个简短的描述和比较。

\

无 论阅读任何关于大数据的文章或是谈论有关大数据的话题,你总会听到Hadoop或是ApacheSpark。它们两个有时被视为大数据领域里数据处理技 术的竞争对手,但越来越多的共识是它们结合在一起才能更好地发挥各自的优势。在这篇文章里,我对它俩做了一个简短的描述和比较。

1:它们完成的任务不同

Hadoop 和ApacheSpark都属于大数据框架,但它们的目的并不相同。Hadoop本质上是一个分布式的数据基础架构,用户能够在Hadoop之上搭建各 种技术框架与工具,将海量数据通过多个节点分布到服务器集群,对于用户来说这就意味着不需要购买和维护各种各样的昂贵硬件了。Hadoop还可以对数据进 行索引和跟踪,从而对大数据的处理和分析实现了前所未有的支持能力与高效率。而Spark则是一个用来操作分布式数据收集的数据处理工具框架,它的任务并 不是对数据进行分布式存储。

\

2:它们俩可以单独使用

在 Hadoop架构中不仅包括了众所周知的Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)存储组件,还包括了MapReduce数据处理组件,所以用户并不一定需要Spark框架来处理数据。同样的道理,你也可以脱离 Hadoop而单独使用Spark。需要注意Spark并没有有自己的文件管理系统,但无论如何它还是需要一个文件管理系统的,因此即便是不与HDFS集 成,Spark也必然要架在比如另一个基于云的数据平台之上。我们知道Spark是专为Hadoop设计的,因此大家共同的意见都是它们要在一起才更好。

\

3:Spark的速度更快

由 于处理数据的方式更为优化,Spark比起MapReduce来速度要快得多。MapReduce的数据处理操作是分步骤完成的,而Spark则只需一步 就能完成整个数据集的操作。“MapReduce工作流就像这样:从集群中读取数据,执行操作,将结果写入集群,从集群中读取更新后的数据,执行下一步操 作,将下一个结果写入集群,就这样往返重复,”博思艾伦咨询公司首席数据科学家Kirk Borne这样解释。而Spark则能在内存中近乎实时的完成全部数据分析操作。“从集群中读取数据,执行所有必要的分析操作,然后将结果写入集群,这就 完事了,”同样来自Kirk Borne的描述。Spark的批处理速度比MapReduce快10倍,内存分析则比MapReduce快了100倍,他说。

\

4:也许你不一定需要Spark的速度

如 果你的数据操作和报告要求大多是静态的而且有时间等待批处理模式,那么MapReduce的处理方式应该能够满足需求。但是如果你需要对流数据进行分析比 如安装在厂房地板上的传感器传回的实时数据,或搭建多操作应用,你可能就需要用到Spark了,例如现在大多数的机器学习算法都用的是多操作模式。常见的 Spark应用包括实时营销活动,在线产品推荐,网络安全分析和机器日志监控。

\

5故障恢复:方式不同,但效果都不错

在 系统出现问题时,Hadoop可以自动恢复数据,因为数据是在每次操作后写入到磁盘的。Spark也有类似的内置弹性恢复的功能,它的数据对象以弹性分布 式数据集(Resilient Distributed Datasets,RDD)的形式保存,分布在数据集群中。“这些数据对象可以存储在内存或磁盘中,如果系统出了问题,RDD能够提供完全的故障恢 复,”Kirk Borne指出。

目前越来越来多的人为了能够分析、处理好海量数据,开始不断地学习Hadoop等相关软件知识,可是对于这些晦涩难懂的理论知识,自己埋头苦学,显然是不科学的。只有接受系统的、科学的、全面的课程教学才能获得快速的进步以及能力的提高。

编辑:张路麒
关键字: Hadoop  Apache  Spark  大数据 
分享按钮