1.1 初识神象
要认识Hadoop这头神象,便不得不提它的“父亲”Doug Cutting,以及它的“近亲”Nutch和Lucene。“父亲”Doug Cutting本人不仅是Nutch的创始人,还是Lucene项目的创始人,他就像希腊神话中的“盗火人”普罗米修斯,把高深莫测的搜索技术形成产品贡献给普罗大众。“近亲”Lucene是一个Java高性能全文索引引擎工具包,它可以方便地嵌入到各种实际应用中实现全文索引搜索功能。而Nutch则是一个应用程序,它是一个以Lucene为基础实现的搜索引擎应用,Lucene为Nutch提供了文本搜索和索引的API。与此同时,Nutch不仅提供了搜索功能,而且还提供了数据抓取的功能。此外,Nutch中还包含一个分布式文件系统用于存储数据。
2003和2004年,Google先后发表了《The Google File System》、《MapReduce:Simplified Data Processing on Large Clusters》两篇论文。这两个创新性的思路点燃了Doug Cutting 和Mike Cafarella的斗志,他们花了2年的业余时间实现了DFS(分布式文件系统)和MapReduce机制。这次改造使Nutch可以在20台机器上支持几亿的数据规模,其编程和运维的简易性也得到了大幅提升,但系统的吞吐能力与一个真正的网页搜索系统仍有不小的差距。2006年是开源社区如火如荼的一年,当Yahoo!在考虑构建一个高度利用硬件资源、并且维护和开发都非常简易的软件架构时,Doug Cutting和他的“孩子”Nutch进入了Yahoo!的视野。Doug Cutting和Yahoo!各有千秋,一方具有超强的技术前瞻性和实战经验,而另一方能提供世界上数一数二的数据、硬件和人力资源。就这样,双方一拍即合,在同年1月Doug Cutting正式加入了Yahoo!,2月Hadoop这头小象从Nutch中分离出来,并且正式成为Apache组织中一个专注于DFS和MapReduce的开源项目。作为一个分布式系统基础架构,Hadoop使用户可以在不了解分布式底层细节的情况下,充分利用集群的威力,开发分布式程序,实现高速运算和存储。
Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者,Doug Cutting如此解释Hadoop的得名:“这个名字是我孩子给一个棕黄色的填充大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。Google就是由小孩命名的。”
五年的时间里,昔日的小象历练成了一头日渐成熟和强大的神象。2007年1月Hadoop单cluster集群已达900个节点;2008年4月,依托拥有910个节点的群集,Hadoop在209秒内完成了对1TB数据的排序,击败了前一年的297秒冠军;2009年4月,取得了在1400个节点的集群上对500G数据排序仅用时59秒的成绩。如今的它不仅仅致力于应对网络流量和科学研究,而且还涉猎搜索引擎、广告优化、机器学习等领域,并成为IT产业里优秀的大数据平台。