Spark是否会成为Hadoop的终结者
Posted 小象
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark是否会成为Hadoop的终结者相关的知识,希望对你有一定的参考价值。
译者:刘旭坤
http://www.smartdatacollective.com/bernardmarr/341152/big-data-will-rise-spark-spell-end-hadoop
小象科技原创作品,欢迎大家疯狂转发;
机构、自媒体平台转载务必至后台留言,申请版权
Spark已经取代Hadoop 成为了时下最活跃的开源大数据项目。虽然它与Hadoop两者之间并不是直接的竞争关系但必须承认他们有很多相近的用途。
本文中我们就来比较一下Spark和Hadoop之间的相似和区别。我将采用比较平实的文风来避免艰深的计算机科学专业词汇,希望企业的决策层也能够从中获益。
首先Hadoop和Spark两者都是大数据框架,为大数据相关的一些任务提供了时下最流行的工具。Hadoop曾经在开源大数据框架领袖的位子上坐了很多年,但最近被Spark抢去了风头。
这两种框架功能既不完全相同又不互斥,所以其实可以一起使用。虽然有人说Spark有时候比Hadoop快一百倍,但不可否认的是Spark并没有自己的分布式存储系统。
分布式存储是大数据项目的基础,我们借助分布式存储可以将PB级别的数据集存储到理论上无穷多个计算机和硬盘上,而不用购买昂贵的大型专业存储器。分布式存储系统也是可扩展的,这意味着可以随时添加硬盘以满足增加的数据量。
如前所述Spark本身不提供分布式存储系统所以很多大数据项目都将Spark的分析应用和Hadoop的分布式文件系统HDFS结合起来使用。
Spark相比于Hadoop 的优势在于速度。Spark的操作都是在内存中进行的,因此避免了Hadoop映射归纳系统MapReduce中费时的读写硬盘操作。
每次操作完成之后MapReduce都将所有数据写回到物理存储介质中。这一设置的最初目的是在出错时进行数据恢复因为数据存储在硬盘中比在内存中更保险。Spark则采用了一种称为弹性分布式数据集的技术来从错误中进行恢复。
Spark进行复杂数据处理如实时流数据处理和机器学习的能力比Hadoop强得多,再加上处理速度的巨幅提升才是Spark流行的真正原因。实时处理意味着数据在被捕获时就可以被加入到分析系统中并将分析得到的结果进行实时的反馈。实时的分析和反馈已经成为了大数据应用的一种发展趋势。
通过统计模型和仿真来自我提高的算法称为机器学习,这一领域的分析很适合使用Spark平台来进行。最新的工业制造系统就使用机器学习来预测哪些部件会出问题并准备替换件。Spark有自己的机器学习库MLib但Hadoop则必须使用第三方的机器学习库比如Apache Mahout。
人们总以为Hadoop和Spark要争个你死我活但其实根本没那回事。两者的功能确实有交叉的地方但都是开源产品所以竞争不如想像的激烈,而且提供服务和支持的公司一般同时提供Hadoop和Spark服务,所以消费者可以自由选择需要两个平台的哪些功能。
这些服务提供商也会根据客户的需求来建议最适合的方案。比如你的大数据项目有的是大量的结构化数据,那么可能你并不需要Spark的流数据处理和机器学习功能。这样就没有必要浪费时间和金钱在Hadoop之上在安装一层Spark,因为总归它还处在发展中,安全和基础设施的支持还没有完全到位。
Spark的发展在我看来是由于现在的用户需要更深入地挖掘自己所拥有地数据。开源软件有一点好就是让Spark和Hadoop可以共存并允许服务提供商同时提供这两种服务,当然具体的实施就要根据客户想要怎么从数据中挖掘出最大的价值来决定了。
以上是关于Spark是否会成为Hadoop的终结者的主要内容,如果未能解决你的问题,请参考以下文章