Cloudera已经拉拢到四家主流企业,旨在共同推动将两大开源项目相结合以进一步提升Hadoop社区力量的规划。
Cloudera、IBM、英特尔、DataBricks以及MapR之间建立起合作关系,希望将Apache Hive移植到Apache Spark当中——这项消息是在本周于旧金山举办的Spark峰会上放出的。我们上周就已经得到消息,有传闻称Cloudera将建议把Hive与Spark进行结合。
对于那些不太熟悉Hadoop领域众多项目代号的朋友,我们在这里作出一点简短解释:Spark是一套通用型集群计算系统,最初由加利福尼亚大学与伯克利大学共同开发并以Hadoop文件系统为基础。它能够被用作HadoopMapReduce的替代性数据处理方案,且在内存内运行机制下可带来100倍于MapReduce的处理速度——采用磁盘运行机制时的速度提升则在10倍左右。
与此同时,Hive是一款数据仓库软件、旨在利用SQL类语言对存储于Hadoop当中的数据进行查询。
两个项目的重要地位皆不容质疑,其中Spark被视为MapReduce的潜在继承者,而Hive则被公认为在Hadoop上实现SQL任务处理的不二选择。
通过将Hive与Spark相结合,Cloudera公司希望能够把纷繁复杂的Hadoop生态系统加以整合并将力量集中起来,而且这样做同时也将降低Cloudera自家项目Impala的重要程度。
在我们进行的采访当中,Cloudera公司产品管理主管Justin Erickson指出,该公司已经决定全力推动Hive——这是因为他们希望“促进并聚合Spark与Hive两个社区的技术力量,最终在Hadoop当中为用户带来更快的批处理速度。”
“Hive是目前Hadoop当中的标准批处理解决方案,”该公司产品营销部门负责人Matt Brandwein表示。“我们希望能够缓解社区当中力量涣散的现状。人们已经开始意识到,摆在自己面前的选项实在太多、它们各自适合应对的任务也各不相同。Spark才是继任者与接班人,这一点需要得到强调与认可。”
这一举措将给整个Hadoop生态系统带来重要的影响,Cloudera自然也在其中。过去Cloudera公司一直对Hive的价值持怀疑态度。在去年发表的一篇博文中,该公司首席战略官Mike Olson写道“几十年以来的经验已经教会我们,一定要让自己的数据库拥有实时响应能力,而以MapReduce为基础建立起来的Hive并不能满足这样的需求。”
为了解决Hive的这一天然缺陷,Cloudera公司开发出自己的软件方案,也就是Impala。不过随着Cloudera、MapR、DataBricks以及英特尔之间全新合作关系的建立,看起来Cloudera对于 Hive的态度似乎已经开始缓和,并将利用该技术作为自己与Hadoop社区沟通的主要途径——当然,他们也将继续开发Imapala并将其作为盈利手段之一。
在这样的背景下,另一套衍生方案实在不得不提——它就是同样希望将Hive运行在Spark之上的技术项目Shark。不过Cloudera认为Shark与主流Hive之间存在着严重偏差。
“Shark所采取的方案是替换掉Hive当中的多种关键性组件,其中包括查询规划机制以及Hive的其它元素,”Cloudera解释道。“这样作法的结果就是,Shark要保持与Hive之间的兼容性将变得非常困难,因为那些对Hive作出的变更无法以透明方式移植到Shark当中。在自己的Hive & Spark对接方案当中,我们只对物理查询规划机制作出了很有限的一点调整并向Hive添加了多种新功能,同时以透明化方式向Spark、MapReduce以及Tez提供了变更内容。这样一来,其维护负担将比Shark项目低得多,而且能够更深层地与核心Hive社区相结合。”
|