Spark是否能宣布Hadoop“死刑”?看看二者的五个区别就明白了

Posted 大数网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark是否能宣布Hadoop“死刑”?看看二者的五个区别就明白了相关的知识,希望对你有一定的参考价值。

说到大数据,很多人都会提及Hadoop 与 Apache Spark。Hadoop解决了大数据的可靠存储和处理问题。但因为其本身的工作流程一板一眼,只擅长静态存储对象的批式处理,有自身的局限和不足。Spark应运而生,受到追捧,甚至被认为是大数据的未来,将会替代Hadoop。


所以在这里简要总结下各自的优劣势,并从五个方面比较二者的区别。看看Spark是否能宣布Hadoop的“死刑”?

1
使命不同


Hadoop和ApacheSpark虽然都是大数据框架,但他们并不真正服务于同样的目的。 Hadoop是一个分布式数据基础设施:可以支持一个或多个服务器,在集群内跨多个节点,分配大量数据集合。这意味着如果你要处理大数据,有了它就足以解决大数据的存储和处理问题,不需要购买昂贵的定制化硬件及维护服务了。 它还也可以索引和跟踪数据,使大数据处理和分析更有效。 另一方面,Spark是一个数据处理工具,可以做分布式数据收集,但不能做分布式存储。

2
可以择其一而用


Hadoop不仅是个存储组件,还包括Hadoop分布式文件系统和被称作MapReduce的处理组件。所以,人家自身功能很多,你不一定非要用Spark配合。 相反地,不搭建在Hadoop上,也可以单独使用Spark。但是,由于Spark不自带文件管理系统,还得结合HDFS或者基于云的数据平台。 其实,Spark是专为完善Hadoop而生,因此有人认为在未来会替代Hadoop。但是,大部分人目前通常是采用二者配合来做的方式搭建,更希望二者可以协作起来,更好地发挥各自的效用。

3
Spark的速度更快


Spark通常比MapReduce快得多,因为处理数据的方式不一样。 在MapReduce按部就班的处理时,Spark可以对整个数据集中处理。 有数据科学家这样形容MapReduce的工作流程:从集群读取数据——执行一个操作——将结果写入集群——从集群中读取更新的数据——执行下一步操作——写未来结果到集群……” 另一方面,Spark是基于内存计算,在完成完整的数据分析操作上,也是接近实时处理的。它的工作流程可以这样形容:从集群中读取数据——执行所有必要的分析操作——将结果写入集群,完成。Spark比MapReduce在批处理上速度快得高达10倍,基于内存计算分析上快100倍。

4
Spark虽快,但不一定适合所有场景


如果数据操作和报告需求大多是静态的, MapReduce的处理风格完全可以胜任了,你只需耐心等待它的批处理模式来做就行。但是,如果你需要对流数据做分析,比如工厂里的传感器数据,或要处理多个操作的应用程序,这种情况选择Spark更合适。 例如,大多数机器学习算法需要多个操作。 Spark常见的应用场景还有:实时营销活动、在线产品推荐、网络安全分析和机器的日志监控等。

5
应对故障:方式不同,但稳定性都不错。


Hadoop对系统故障具备天然抵抗力,因为上文所说的,它的工作流程非常稳扎稳打:在执行每个操作后都会把数据写入磁盘,自然便于恢复。而Spark,采用类似的方式,具有内置弹性。 具体来说,其数据对象存储在集群数据里的,弹性分布式数据集上(即RDD,Spark的核心。它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算)。这些数据对象可以存储在内存或磁盘上,当系统报错时候,RDD可以帮助全面恢复。


综上所说,可以看出,二者各有千秋,场景不同所选方案就会不同。不过,大多数人更愿意看到1+1>2的效果。


注:文章翻译自cio网站,作者Katherine Noyes。


以上是关于Spark是否能宣布Hadoop“死刑”?看看二者的五个区别就明白了的主要内容,如果未能解决你的问题,请参考以下文章

hadoop和spark的区别介绍

Hadoop/Spark生态圈里的新气象

当你谈论大数据的时候你还在说Hadoop?

直播|Hadoop与Spark能一直共存吗?

转载:名次王国里的死刑解决方法

Spark:超越Hadoop MapReduce