acm-header
登录

ACM通信

BLOG@CACM

Hadoop站在十字路口?


麻省理工学院兼职教授Michael Stonebraker说

自从我上次发博客杰里米·凯普纳在2012年这个话题上[1]在美国,很多事情已经过去了,我觉得有必要指出一些事实和观点,并对一些公告进行报道。最后,我对“Hadoop堆栈”的发展方向进行了预测。

第一个公告是Cloudera发布了一个新的数据库管理系统Impala[2],它运行在HDFS上。简单地说,Impala的架构完全类似于所有不共享的并行SQL dbms,服务于数据仓库市场。特别要注意的是,MapReduce层已经被删除了,这是有充分理由的。正如我们中的一些人多年来一直指出的那样,MapReduce在SQL(或Hive) DBMS中不是一个有用的内部接口[3,4).Impala是由精明的DBMS开发人员设计的,他们知道上面的pragma。事实上,HortonWorks和FaceBook正在进行类似于Impala的开发活动。当然,这给Hadoop供应商带来了一个困境。历史上,“Hadoop”指的是雅虎编写的MapReduce开源版本。然而,Impala已经把这一层从堆栈中去掉了。当Hadoop不再是主流堆栈时,如何成为Hadoop供应商?

答案很简单:重新定义“Hadoop”,而这正是Hadoop供应商所做的。“Hadoop”这个词现在被用来表示整个堆栈。换句话说,HDFS在底层,上面运行着Impala、MapReduce等系统。在这些系统之上运行高级软件,如Mahout。“Hadoop”这个词被用来指代整个集合。

第二个最近的公告来自谷歌,他们宣布MapReduce已经是过去的新闻了,他们已经在Dremmel、Big Table和F1/Spanner等更好的系统上构建他们的软件产品[5].事实上,谷歌现在肯定在“嘲笑他们的啤酒”。他们在2004年发明了MapReduce来支持他们的搜索引擎的网络抓取。几年前,他们用BigTable取代了这个应用中的MapReduce,因为他们想要一个交互式存储系统,而MapReduce只能批处理。因此,MapReduce背后的驱动应用程序在不久前转移到了一个更好的平台上。现在谷歌报告说他们认为未来对MapReduce的需求很少甚至没有。

确实具有讽刺意味的是,在谷歌转向更好的东西大约5年后,Hadoop在一般社区中获得了支持。因此,世界上其他国家跟随谷歌进入Hadoop的时间延迟了近十年。谷歌早就抛弃了它。我想知道世界上其他国家要花多长时间才能遵循谷歌的方向并采取同样的行动……

注意,Hadoop供应商现在与数据仓库供应商发生了冲突。他们现在正在实现(或已经实现)数据仓库人员支持的相同体系结构。一旦他们有几年的时间来巩固他们的实现,他们可能会提供有竞争力的性能。同时,大多数数据仓库供应商都支持HDFS,并且许多提供了支持半结构化数据的特性。因此,数据仓库市场和Hadoop市场将迅速融合。愿最好的系统在最终的面对面的donnebrook中获胜!

现在我转向HDFS,它是Hadoop堆栈中唯一剩下的公共构建块。请清楚地注意,HDFS是一个文件系统,能够存储字节数据,这是我们在任何计算平台上都期待的特性。对于HDFS未来的发展方向,有两种可能的世界观。如果从文件系统的角度来看,那么用户需要通用的分布式文件系统,而HDFS是一个非常合理的选择。

另一方面,从并行SQL/Hive DBMS的角度来看,HDFS是一个“比死亡还糟糕的命运”。DBMS总是希望将查询(小千字节)发送到数据(大千兆字节),而不是相反。因此,对DBMS隐藏数据的位置是致命的,DBMS将竭尽全力绕过这一特性。所有并行dbms,无论是来自仓库供应商还是来自Hadoop供应商,都将关闭位置透明性,使HDFS看起来像Linux文件系统的集合,每个节点一个。同样,没有DBMS需要文件系统副本。看到[6]对于这一点的广泛讨论。简而言之,负载平衡、查询优化和事务考虑都有利于使用dbms提供的复制系统。

如果事实证明,随着时间的推移,DBMS的观点在市场中占上风,那么HDFS将随着DBMS供应商放弃它的特性而萎缩。在这种情况下,每个节点上都有一个本地文件系统,一个支持高级查询语言的并行DBMS,以及顶部的各种工具或通过用户定义的函数定义的扩展。在这种情况下,Hadoop将演变成一个标准的无共享DBMS,一群DBMS供应商将为您的软件资金展开竞争。

另一方面,如果文件系统的观点占了上风,那么HDFS可能会在它上面运行各种各样的工具的情况下完好无损地生存下来。在DBMS环境中,用户认为理所当然的特性,如负载平衡、审计、资源调控器、数据独立性、数据完整性、高可用性、并发控制和服务质量,对文件系统用户来说将是缓慢的。在这个场景中没有更高级别的标准接口。换句话说,DBMS视图提供了一堆有用的服务,如果用户想要运行较低级别的接口,建议他们仔细考虑。

在这两种情况下,唯一通用的软件是文件系统,Hadoop供应商将销售基于文件系统的工具,要么是DBMS工具,要么是其他工具(或者两者都有)。实际上,他们将加入销售软件或服务的系统软件供应商的行列。愿最好的产品胜出!

参考文献

[1]//www.eqigeno.com/blogs/blog-cacm/149074-possible-hadoop-trajectories/fulltext

[2]http://www.cloudera.com/content/cloudera/en/products-and-services/cdh/impala.html

[3]http://dl.acm.org/citation.cfm?id=1629197

[4]帕夫洛等人,《大规模数据分析方法的比较》SIGMOD 2009。

[5]http://www.datacenterknowledge.com/archives/2014/06/25/google-dumps-mapreduce-favor-new-hyper-scale-analytics-system/

[6]斯通布雷克等人,“企业数据应用和云:艰难的前进之路”,Proc IEEE IC2E,波士顿,麻州。2014年3月


评论


C通信学院

这篇伟大的文章,是本系列众多文章中的一篇,被证明是有预见性的。
我认为,当要选择“扩展”现有技术还是摒弃旧技术以支持革命性的东西时,创意市场总是会产生紧张的气氛。在这种情况下,大部分市场选择了革命性的技术,而没有考虑到最终需要为企业生产目的充实技术的所有特性。这并不是说Hadoop和MapReduce对某些应用程序没有用处或没有生产力——它们是有用的。然而,说Hadoop和MapReduce使现有的DBMS技术/产品过时是一种说法。
因此,我认为重要的方面是NoSQL数据库的引入,新形式的并发/事务,例如,“最终一致性”是“足够好”,以及“大数据”。引入这些特性的特定产品很可能不是最终使这些特性适用于企业的产品。与COBOL程序一样,使用现有技术的应用程序可能永远不会消失,直到所有SQL程序员都消失。


显示1评论

Baidu
map