大数据:Spark和Hadoop是友非敌

Spark 在 6 月份取得了激动人心的成绩。在圣何塞举办的 Hadoop 峰会上,Spark 成了人们经常提及的话题和许多演讲的主题。IBM 还在 6 月 15 号宣布,将对 Spark 相关的技术进行巨额投资。

这一声明帮助推动了旧金山Spark 峰会的召开。在这里,人们会看到有越来越多的工程师在学习 Spark,也有越来越多的公司在试验和采用 Spark。

对 Spark 的投资和采用形成了一个正向循环,迅速推动这一重要技术的成熟和发展,让整个大数据社区受益。然而,人们对 Spark 的日益关注让一些人产生了奇怪、固执的误解:即 Spark 能取代 Hadoop,而不是对 Hadoop 的补充。这一误解从《公司纷纷抛弃大数据技术 Hadoop 》这样的新闻标题上就能看出来。

作为大数据长期践行者、现任大数据即服务公司首席执行官,我想就这一误解发表看法,进行一些澄清。

Spark 和 Hadoop 配合得很好。

Hadoop 正日益成为公司处理大数据的企业平台之选。Spark 则是运行在 Hadoop 之上的内存中处理解决方案。Hadoop 最大的用户(包括易趣和雅虎)都在自己的 Hadoop 集群中运行 Spark。Cloudera 和 Hortonworks 在其 Hadoop 包中也加入了 Spark。我们 Altiscale 的客户在我们最开始推出时就使用运行着 Spark 的 Hadoop。

将 Spark 放到 Hadoop 的对立面就像是在说你的新电动车非常酷,根本不需要电一样。但事实上,电动车会推动对更多电力的需求。

为什么会产生这种混淆?如今的 Hadoop 由两大部分组成。第一部分是名为 Hadoop 分布式文件系统(HDFS)的大规模存储系统,该系统能高效、低成本地存储数据,且针对大数据的容量、多样性和速度进行了优化。第二部分是名为 YARN 的计算引擎,该引擎能在 HDFS 存储的数据上运行大量并行程序。

YARN 能托管任意多的程序框架。最初的框架是由谷歌发明的 MapReduce,用来帮助处理海量网络抓取数据。Spark 是另一个这样的框架,还有一个名为 Tez 的新框架。当人们谈论 Spark 与 Hadoop 的“对决”时,他们实际上是在说现在程序员们更喜欢用 Spark 了,而非之前的 MapReduce 框架。

但是,MapReduce 不应该和 Hadoop 等同起来。MapReduce 只是 Hadoop 集群处理数据的诸多方式之一。Spark 可以替代 MapReduce。商业分析们会避免使用这两个本来是供程序员使用的底层框架。相反,他们运用 SQL 等高级语言来更方便地使用 Hadoop。

在过去四年中,基于 Hadoop 的大数据技术涌现出了让人目不暇接的创新。Hadoop 从批处理 SQL 进化到了交互操作;从一个框架(MapReduce)变成了多个框架(如 MapReduce、Spark 等)。

HDFS 的性能和安全也得到了巨大改进,在这些技术之上出现了众多工具,如Datameer 、 H20 和Tableau 。这些工具极大地扩大了大数据基础设施的用户范围,让数据科学家和企业用户也能使用。

Spark 不会取代 Hadoop。相反,Hadoop 是 Spark 的基石。随着各个组织寻求运用范围最广、最健壮的平台来将自己的数据资产转变为可行动的商业洞见,它们对 Hadoop 和 Spark 技术的采用也会越来越多。

;