Hadoop:云中起舞的小象

  “Hadoop 是我两岁儿子给他的黄色毛绒小象玩具起的名字,名字很短,发音很容易,并没有什么意义,也没有其他用途。”开源软件界的程序牛人Doug Cutting如此解释Hadoop这个词。

  然而,当2006 年Cutting 以Hadoop命名他开发的一个分布式软件项目后,Hadoop这个词不仅很有意义,而且在云计算领域显露出广泛的应用前景。

  2008年,中国有家电信运营商试着用36 万元搭建了一个基于x86 架构和Hadoop架构的云计算评估平台。在与已有的270万元商用系统跑同样的应用进行性能比较后,他们惊喜地发现,Hadoop 平台的数据处理性能增加了约30倍,数据挖掘性能增加了约9倍,而且成本优势将随着数据处理规模的增加而更具优势。如今,这家电信运营商已成为国内云计算的积极的倡导者和实践者,这与其当初从Hadoop上获得的震撼不无关系。

  而2008 年的Hadoop,还只是只两岁的小象。

  小象的身世

  施乐位于硅谷的实验室(施乐PARC)以个人电脑、鼠标、图形界面、激光打印机、以太网等众多的重大贡献享誉业界,但是这些重要技术的发明人在相继离开施乐PARC后,在学术和技术上的成就却鲜有超过其在施乐PARC 的技术生涯。

  Doug Cutting 是一个例外。他曾经在施乐PARC 默默无闻地工作了5 年,然后又在苹果、Excite(搜索引擎公司)和雅虎工作多年。二十多年对搜索及相关技术的不懈追求和对开源运动的热爱,最终让大器晚成的Cutting凭借Hadoop而名扬天下。

  1998 年,Cutting 开始用Java 编写Lucene。Lucene是一个开源的全文检索函数库,程序员可以通过Lucene在应用系统中实现全文检索的功能,或者在此基础上构建全文检索引擎。到了2001年,Lucene成为开源软件基金会Apache 的项目。开放源代码以及出众的索引架构和可扩展性,使得Lucene 成为今天最为流行的全文检索函数库。现在,维基百科使用的就是Lucene。

  然而,要做一个互联网上的搜索引擎,Lucene 还需要网页爬虫和查询的配合。于是, 到了2002 年,Cutting 和MikeCafarella开始了名为Nutch项目的相应的开发工作。最初,他们认为,Nutch 架构不大可能覆盖到互联网上数十亿的网页。到了2003 年,Google 发表的有关Google 分布式文件系统(GFS)的论文增强了他们的信心。2004年,Cutting和Cafarella发布了开源的Nutch分布式文件系统(NDFS)。

  2004年,Google两位程序牛人JeffreyDean 和Sanjay Ghemawat 发表了著名的《MapReduce:大型集群上的数据处理简化》论文。MapReduce从此风靡业界。

  2005年初,Cutting开始在Nutch上实现MapReduce。到了2006年2月,这项工作从Nutch 项目中剥离出来,独立成为Lucene的一个子项目,并被Cutting命名为Hadoop。与此同时,Cutting 加盟雅虎。雅虎为Cutting 配备了专门的开发团队和各种资源,希望Cutting把Hadoop 发展成能在Web 上大规模运行的系统。

  2008年2 月,雅虎演示了具有10000内核的Hadoop 集群系统。而此前的一个月,Hadoop 刚被Apache 列为顶级项目。

  Google保守与雅虎开放

  尽管Google 诞生并得益于开放的互联网世界,但Google 对自家的技术还是非常封闭的。虽然Google 的论文让MapReduce 名扬天下,但Google 却没有把他们的MapReduce 的实现与业界分享。毕竟MapReduce 的实现是支撑Google帝国的核心基础。

  作为开源软件积极的实践者,Cutting几乎是在家中自由的氛围下进行Lucene和Nutch 的开发,而寻求资助就成为Cutting写代码之余的另一项工作。在去雅虎之前,Cutting 也曾找过Google“拉赞助”,跟Google 创始人之一佩奇和其他人都谈过。“他们很愿意提供帮助,可他们找不到一种既资助了Nutch 又不至于帮助到Google 竞争对手的方法。”

  Cutting曾对媒体表示。

  Google把MapReduce 看作是与对手竞争的独门绝技,如果Google 资助了Cutting,Cutting 用开源的方式实现了MapReduce,岂不等于把MapReduce 的技术扩散出去,进而为Google 的竞争对手所利用,岂不得不偿失。

  与Google 的精明相比,当时最大的互联网公司雅虎却犯了一次“傻”。2004年1月,雅虎很大方地主动找到Cutting,要求资助Nutch 项目,继而将Cutting 揽于麾下。

  “业界很希望开源,因为开源可以鼓励很多的创新。雅虎贡献了Hadoop 70%的源代码,我们可以使用其他开发者贡献的另外30%的代码,而且,我们在北京找到有Hadoop 开发经验的工程师也变得容易起来。作为一个大公司,我们希望能够对业界做出我们的贡献,同时,我们也能够受益其中。”雅虎北京全球研发中心总经理张晨表示。

  Hadoop 之所以日益受到关注,就是因为大家不必再望MapReduce 而兴叹,人们可以在开源的环境下,在云计算时代享受到MapReduce 带来的种种好处。

  Hadoop 为云计算的应用提供了开源的系统平台。Hadoop 除了提供分布式文件系统(HDFS)和支持MapReduce的计算框架外,还在这一计算框架之上提供了可扩展的数据仓库Hive、结构化数据库HBase、数据流高层语言Pig、高性能分布式协同服务ZooKeeper、面向大规模分布式系统的数据收集软件Chukwa 等。

  Cutting 对Lucene、Nutch 和Hadoop的杰出贡献,反倒让开源社区中很多Hadoop的爱好者担起心来,生怕Google从雅虎挖走Cutting。担心的时刻终于在2009 年8 月到来了,Cutting 从雅虎辞职。

  然而,让Hadoop 爱好者欣喜的是,Cutting没有放弃他所钟爱的Hadoop,他去的Cloudera 是一家只有十几人的创业公司,专门为Hadoop提供技术服务。2010 年9 月,Cutting 当选为Apache软件基金会主席。这与其说是对Cutting的肯定,不如说是开源界对Hadoop价值的肯定。

  Hadoop的中国社区力量

  得益于互联网的有效传播,特别是互联网大规模并发计算与海量存储的应用特征对传统计算模式的冲击,在Hadoop还是小小象的时候,国内的Hadoop爱好者便开始了网聊———技术交流,到了2008年,这些未曾谋面的志同道合者,认为应该在现实世界中认识一下,面对面地交流技术。

  于是,中科院计算所做东,举办一次Hadoop开发者技术沙龙,几十位Hadoop爱好者总算彼此之间把网名与真人对上号。而计算所做东的传统便延续下来。到了2010 年,这个技术沙龙已经演变成由计算所主办、约有600 位开发者参加的Hadoop中国2010云计算大会。一只小象引来了雅虎、百度、淘宝、中移动、EMC、FaceBook、计算所等知名的企业和研究机构的参与。

  “我们很高兴地看到,虽然雅虎还在不断地为Hadoop 贡献源代码,但雅虎的贡献率已经从当初的90%下降到现在的70%,这说明更多的企业和志愿者成长起来,Hadoop 社区更加强大了。现在,国内有些企业也很愿意成为Hadoop 源代码的贡献者。”张晨说,“我们也在考虑如何协助他们,尽管我们的职责是为雅虎全球开发核心产品。”

  Hadoop 大会结束后,从雅虎总部参会的演讲者又在雅虎北京研发中心就Hadoop 的优化问题进行了深入的技术探讨。近3 个小时纯英语环境的技术交流与探讨,吸引了大约200 位Hadoop 爱好者。

  社区是开源软件的一面镜子。Hadoop在中国的发展,从Hadoop 社区的成长便可略见一斑。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: