Hadoop 从Yahoo向Google的技术转折
仅仅一年的时间,Hadoop就发布了一个真正开源的稳定版本,但是这个版本还不能称为1.0,只能称为0.20.0。尽管如此,Hadoop已经成为eHarmony情人频道、LinkedIn求职频道、Fox互动媒体社区网站等很多大网站的搜索引擎了。另外默多克传媒、MySpace、Photobucket以及Rotten Tomatoes也都表示Hadoop为他们提供了很大的帮助。
在最近的一次采访中,Hadoop创始人之一Doug Cutting表示自己都对Hadoop的发展速度感到吃惊。他说:“从Nutch(Hadoop的前身)开始探索网络搜索以来,....我一直在寻找和挑战突破”。还说;“那时候并没有认为我们已经超出了现在大规模网站的索引环境”。
但是在第一个稳定版本发布一年之后的几个月里,也就是去年的ApacheCon会议上,关于Hadoop 1.0以及2010年的方向的讨论变得不可思议。
该项目正朝着一个在无需打破用户习惯、无需重新安装软件或损失数据的情况下就可以升级的目标前进。使用Hadoop,用户在不需要彻底重建数据中心的情况下对系统进行升级。
Yahoo将Hadoop项目优先级降低
Cutting说,他的前雇主,也就是Yahoo,这个拥有众多支持者的企业一直都是Hadoop的唯一支持者。但是现在遇到了一些挑战,因为Yahoo已经开始将重点倾斜向一些其他的项目了。搜索的另一个要求就是安全性,只有在安全的搜索保护下,人们才可以建设大规模私人信息集群,并且保证不让其他人找到他们的信息。虽然安全也是Hadoop目标之一,但是Yahoo更希望能够快速推出可用的产品。Cutting说,Hadoop 1.0可能没有太大的改进,但是我们有很大的希望。
有趣的转折
最初阶段,Yahoo发起并推动了Hadoop项目,并为该项目提供了很大的帮助。但是在2000年之后,随着Google公司的发展,Yahoo清楚的看到Hadoop不应该仅仅是一个网络搜索引擎,更应该是一个能够为分布式数据提供各种服务的运算架构。该架构是基于Google分布式文件系统(GFS)以及MapReduce之上。在GFS和MapReduce之前,也就是2002年的时候,Cutting已经创建了Nutch这个很完善的搜索引擎,但是后来开始遇到困难。Cutting说,当时的工作内容已经涉及到整个互联网,对10亿个网页进行操作是一个很痛苦的事情。
从Nutch到Hadoop
Hadoop模仿GFS和MapReduce,将大量的数据分割成小的数据块,以达到联合数千个服务器快速搜索的目的,并且提供单一的访问点。Cutting说,现在已经能过搭建起基于20多台服务器的演示案例,并在之上做一些实际的工作。但是不会达到所说的数千个服务器程度,因为那么多服务器,在可靠性方面现在还确实没有办法保证。
就在Yahoo参与和支持Nutch,并为该项目提供工程师和设备的时候,Yahoo软件开发副总裁Eric Baldeschwieler发现了该项目的另一个用途,也就是迅速分析和处理位于多个网络服务器上的数据。于是Cutting从Nutch中将分布计算部分单独分离为Hadoop项目。
Cutting说Yahoo的研发人员希望从广告以及web服务器获取大量数据。如果你问一个Yahoo的研发人员如何提高广告的相关性,他们会说首先把数据收集到一起,然后找到这些数据的早期用户,这些人就是喜欢相关广告的人。但是,如何分析网页内容几周内所发生的变化,这种变化每个小时都存在,并且会导致分散广告点击流量,以及如何在很短的时间内处理上TB的数据。这些都是要处理的大问题在Yahoo将注意力放在安全问题上的时候,Cutting继续为Hadoop项目寻找突破点。他希望有其他的非Java程序员能够参与进来,参与的方式可以通过Avro项目。
Java之外
Avro是一种数据交换格式,目标是保证在应用程序升级或修改之后依然能对数据进行访问。当然目标也包括Python、C、以及C++等其他程序语言能够支持Hadoop、MapReduce 和 HDFS。
在2009年8月,Cutting加入了Cloudera公司,该公司的业务是销售流行开源技术和服务。虽然Hadoop已经应用在很多大型网站上,但是Cutting还是觉得Hadoop适合建立20个点左右的集群,这种集群应该比通过数据库处理堆积如山的数据更容易。Cloudera的客户包括NetFlix 和三星公司。