云计算 频道

初识Hadoop-《Hadoop权威指南》连载

  Yahoo!的Hadoop

  构建互联网规模的搜索引擎需要大量的数据,因此需要大量的机器来进行处理。Yahoo!Search有4个主要组成部分:Crawler,从网页服务器爬取网页;WebMap,构建一个已知网页的链接图;Indexer,为非常好的页面构建一个反向索引;Runtime,处理用户的查询。WebMap构建的链接图非常大,大约包括一万亿条边(每条边代表一个网页链接)和一千亿个节点(每个节点代表不同的网址)。创建并分析如此大的图需要大量计算机运行若干天。2005年初,WebMap所用的底层架构称为Dreadnaught,需要重新设计使其可以扩展到更多的节点。Dreadnaught 成功地从20个节点扩展到600个,但需要一个完全重新的设计,才能进一步扩大。Dreadnaught与MapReduce在很多方面都很相似,但灵活性更强且结构更松散。具体说来,Dreadnaught工作的每一个片断(fragment,也称“分块“)都可以输送到下一阶段的各个片断继续执行,而排序是通过库函数完成的。但实际情形是,大多数WebMap阶段是两两构成一对,并对应于一个MapReduce。因此,WebMap应用不需要做大量的重构操作,便可以适应MapReduce。

  Eric Baldeschwieler(Eric14)组建了一个小团队,于是我们开始设计并在GFS和MapReduce上用C++来建立一个新框架的原型,最后用它来取代Dreadnaught。尽管我们的当务之急是需要一个WebMap新框架,但更清楚的是,标准化Yahoo! Search的批处理平台对我们更重要。使平台更通用以便支持其他用户,才能够更好地实现新平台的均衡性投资。

  与此同时,我们关注Hadoop(当时还是Nutch的一部分)及其进展情况。2006年1月,Yahoo!聘请了Doug Cutting。一个月后,我们决定放弃我们的原型,转而采用 Hadoop。与我们的原型和设计相比,Hadoop的优势在于它已经在20 个节点上实际应用过(Nutch)。这样一来,我们便能在两个月内搭建一个研究集群,并能够更快地帮助我们的客户使用这个新的框架。另一个显著的优点是Hadoop已经开源,较容易(尽管也不是太容易!)从Yahoo!法务部门获得许可对该开源系统进行进一步研究。因此,我们在2006年初构建了一个200个节点的研究集群,并将WebMap的计划暂时搁置,转而为研究用户使用Hadoop提供支持以及进一步开发。

  Hadoop大事记

  l 2004年——由Doug Cutting 和Mike Cafarella实现了现在HDFS和MapReduce的最初版本。

  l 2005年12月——Nutch移植到新框架,Hadoop在20 个节点上稳定运行。

  l 2006年1月——Doug Cutting加入Yahoo!。

  l 2006年2月——Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。

  l 2006年2月——Yahoo!的网格计算团队采用Hadoop。

  l 2006年4月——在188个节点上(每个节点10 GB)运行排序测试集需要47.9个小时。

  l 2006年5月——Yahoo!建立了一个300个节点的Hadoop研究集群。

  l 2006年5月——在500个节点上运行排序测试集需要42个小时(硬件配置比4月的更好)。

  l 2006年11月——研究集群增加到600个节点。

  l 2006年12月——排序测试集在20个节点上运行1.8个小时,100个节点上运行3.3小时,500个节点上运行5.2小时,900个节点上运行7.8个小时。

  l 2007年1月——研究集群增加到900个节点。

  l 2007年4月——研究集群增加到两个1000个节点的集群。

  l 2008年4月——在900个节点上运行1 TB排序测试集仅需209秒,成为世界最快。

  l 2008年10月——研究集群每天装载10 TB的数据。

  l 2009年3月——17个集群总共24 000台机器。

  l 2009年4月——赢得每分钟排序,59 秒内排序500 GB(在1400个节点上)和173分钟内排序100 TB 数据(在3400个节点上)。

  (作者:Owen O’Melly)

0
相关文章