理论教育 小象开源系统:雅虎的搜索平台经验与教学平台应用

小象开源系统:雅虎的搜索平台经验与教学平台应用

时间:2023-05-27 理论教育 版权反馈
【摘要】:2006年,卡丁加入雅虎,开始了新的搜索平台的搭建工作[24],这就是“小象”项目。经过两年多的不断实验和摸索以及雅虎对该项目源源不断的资金投入,2008年雅虎的搜索和广告平台已经可以完全移植到小象平台上。因为谷歌的平台不是开源系统,无法开放源代码用来给学生使用,所以比希利亚选择了与谷歌文件系统和映射化简类似的小象开源软件作为教学平台使用。Cloudera也在同一时间适时推出了Cloudera版本的小象系统供客户使用。

小象开源系统:雅虎的搜索平台经验与教学平台应用

2004年,谷歌的研发人员将谷歌文件系统和映射化简算法的理论架构论文的形式公开发表后,吸引了很多人的注意,其中包括互联网档案网站[22]的搜索功能负责人道·卡丁(Doug Cutting)和他的程序员助手华盛顿大学的研究生麦克·卡福莱拉(Mike Cafarella)。

曾经在Excite、苹果施乐公司工作过并主要负责索引擎开发的卡丁在1999年开发出了与Linux和MySQL配套的开源网络搜索系统的文件索引系统Luecene,后来又和卡福莱拉在2002年合作开发出网络搜索系统Nutch。这套网络搜索平台系统被包括维基百科在内的很多互联网创业公司所采用。卡丁他们一直想将该系统延伸到分布式计算系统上,但是到2003年为止由于算法设计的局限性,Nutch只能在三四台机器上运行,而且需要技术人员日夜守护[23]

2003年10月,卡丁和卡福莱拉读到了谷歌发表的《谷歌文件系统》(GFS)论文后意识到这一文件组织架构可以更好地解决系统存储数据的自动扩展问题,于是他们开始动手根据论文提供的思路开发谷歌文件系统的开源版本,这就是后来小象(Hadoop)系统的雏形。一年后他们的系统原型接近完成时,2004年12月谷歌又发表了描述谷歌的映射化简系统的论文。这篇论文给卡丁他们在谷歌文件系统的基础上提供了新的并行自动处理信息的思路。不久,他们根据这两篇论文提供的思路开发出了谷歌文件系统和映射化简系统的开源版本。经过实验调试后,该系统能够支持他们的Nutch搜索引擎在不增加技术人员支持的情况下同时运行20~40台服务器,大大提高了工作效率。

谷歌公布的技术不仅吸引了卡丁他们,也引起了雅虎的注意。2005年,雅虎搜索部门的负责人陆奇在OSDI大会上看到谷歌的迪恩介绍的谷歌映射化简后也产生了与卡丁类似的想法。在过去几年时间里,面对互联网依旧以指数增加的内容,雅虎也在寻找更好的大规模并行计算架构来处理这些海量内容带来的存储和索引问题。雅虎负责搜索引擎开发的架构师埃里克·巴尔德施维勒(Eric Baldeschwieler)正带领一个团队探索产品开发工作。陆奇和巴尔德施维勒就谷歌的架构进行了交流后准备将谷歌的架构和思路作为雅虎搜索平台发展方向。大概在同一时间,雅虎搜索和广告技术部门的首席科学家简·彼得森(Jan Pedersen)和负责雅虎搜索算法的架构师雷米·斯泰塔(Raymie Stata)看好了此时已经根据谷歌架构改进的开源搜索系统Nutch,准备将其引进雅虎平台。斯泰塔兼任Nutch开源项目基金董事长,所以对卡丁他们已经摸索出来的技术优势非常了解。

因为引入开源系统对雅虎意味着很多政策的修订,所以斯泰塔说服了陆奇后,陆奇又通过雅虎副总裁杰夫·韦勒(Jeff Weiner)说服了雅虎董事会做出了引入Nutch的决定。随后,斯泰塔和巴尔德施维勒又说服了雅虎搜索技术团队将其开发项目与Nutch合拢到一起。

2006年,卡丁加入雅虎,开始了新的搜索平台的搭建工作[24],这就是“小象”(Hadoop)项目。经过两年多的不断实验和摸索以及雅虎对该项目源源不断的资金投入,2008年雅虎的搜索和广告平台已经可以完全移植到小象平台上。几年后,雅虎的所有服务也都基本移植到了小象平台上。等到2011年雅虎将该项目的开源软件部分独立出去时,雅虎的小象平台已经成为一个包含42000台Linux服务器集群和储存上百拍字节(Petabytes)信息的庞大系统,该系统使得雅虎能够以比以往快33倍的速度搜索和索引所有互联网网页。

2006年卡丁加入雅虎时,谷歌的一个年轻的工程师克里斯托弗·比希利亚(Christophe Bisciglia)正在利用公司给员工的每周一天自由项目时间用于在西雅图的华盛顿大学教授本科计算机课程[25]。谷歌公司当时需要雇用大批熟悉大规模计算的程序员,但是很少有计算机系毕业的学生对这类计算有实践经验。于是,谷歌公司鼓励员工走出去,主动培养具有这方面天赋的毕业生,于是比希利亚决定在他的母校华盛顿大学开设一门为本科生传授大规模计算编程经验的课程。因为谷歌的平台不是开源系统,无法开放源代码用来给学生使用,所以比希利亚选择了与谷歌文件系统和映射化简类似的小象开源软件作为教学平台使用。

显然,教学用的几台服务器无法让学生真正达到大规模计算编程的实践目的。在比希利亚的推动下,谷歌与IBM以及国家自然科学基金会共同出资购买了一个即将退出使用的数据中心,在该中心装配了2000台小象节点服务器,供学生和老师做教学和研究使用。比希利亚担任了该中心的负责人。(www.daowen.com)

维护这个小象系统的工作让比希利亚看到了一个新的市场机会。如果说大规模计算本身就缺乏足够的编程人员的话,小象系统这样的大规模计算平台软件更需要一个强有力的技术支持才能被更多的公司所采用。既然当年为Linux系统提供支持的红帽子Linux公司后来成长为市值为100亿美元的高科技公司,为小象系统这样的平台提供服务和支持的公司显然会至少成长为同样规模的公司。于是在获得了谷歌总部的支持后,2008年3月比希利亚和他的具有丰富开源软件管理经验的朋友迈克·奥尔森(Mike Olson)一起找到了硅谷的五大风投之一加速合伙公司(Accel Partners)的投资合伙人李平。通过李平的牵线,他们又结识了在脸谱和雅虎分别从事过小象系统具体实施的脸谱数据工程师(Jeff Hammerbacher)和雅虎产品数据挖掘工程师(Amr Awadallah),这两人当时都在加速合伙公司做在住企业家(Entrep-reneur-in-Residence)。这4个人在2008年8月联合成立了Cloudera公司。2009年4月,加速合伙公司联合几个独立投资人为Cloudera进行了第一轮共计500万美元的投资[26]。Cloudera也在同一时间适时推出了Cloudera版本的小象系统供客户使用。8月,已经在雅虎完成了搭建小象系统使命的卡丁从雅虎辞职加入了Cloudera,使得该公司成为正在兴起的云计算市场上第一个为小象系统提供全面技术支持的公司[27]

Cloudera成立后,不少处在相关领域的公司也开始进入这一市场。不过这些公司都没有提供开源软件,在市场影响力上无法与Cloudera相比。直到2011年雅虎将其小象系统的技术研发部门独立出来成立Hortonworks后,市场上才出现了另一个可以与Cloudera匹敌的小象系统服务公司。

2006年,雅虎开始逐渐将整个公司的数据平台移植到小象上后,负责开发小象平台的雅虎技术人员为小象开源项目添加了很多功能代码,成为推动小象开源项目的主导力量。雅虎还和IBM合作为该系统开发出了一套使用类似SQL语言的数据分析软件。亚马逊、脸谱、推特、易贝等一大批互联网大公司在前后几年内纷纷采用了小象平台,将其应用到不同的计算服务需求中。2009年,微软放弃了它已经购买的搜索技术平台,转而使用小象系统,经过几次反复后,微软最终将小象系统用在了它的搜索引擎Bing上。

不过随着小象系统的流行,雅虎的小象团队开始面临人才流失的问题。很多大公司或者看好大规模计算的创业公司不断地从雅虎的小象团队以优厚的条件挖走人才。因为雅虎的管理层不可能给出同样的优厚条件留住这些人员,所以面临越来越严重的人才流失问题。另外,雅虎作为小象系统的最初领航公司也希望从其技术服务市场获得一定的份额,不甘心让Cloudera独霸日益扩大的市场。这几个因素综合在一起使得雅虎管理层在2011年6月将小象平台从雅虎独立出来,通过部分团队员工和招募一批小象平台的志愿开发人员成立了Hortonworks公司。雅虎和标杆资本为该公司联合投资了2300万美元。公司成立5个月后,指数创投(Index Ventures)又为该公司投入了2500万美元。这使得Hortonworks在资本、人力资源和业界名声上都成为与Cloudera匹敌的公司。巴尔德施维勒担任了公司的总裁。

为了与Cloudera竞争,Hortonworks的小象版本Hortonworks Data Platforms(HDP)将雅虎使用的全部小象系统软件都作为开源代码提供,这样就比Cloudera的小象版本保留管理控制平台部分(Cloudera Management Suite)的市场策略更加有竞争力。

小象系统在众多互联网公司的应用推动了非结构化数据库的NoSQL运动。NoSQL数据库通常具有支持数据库的分割,提供最终一致性支持,以及不需要用户提前确定各种数据表架构等特点。这些特点为网络数据存取和用户快速搜索数据进行分析提供了有效的支持。比如当管理数万台服务器的公司需要保存所有访问过这些服务器的用户IP地址时,显然无法预知每一台服务器可能需要的存放访问IP地址的列数,所以无法提前设定传统的关系数据表行列架构,但是NoSQL数据库通过列式存储、数据压缩和分布式分割存储的方式,可以有效地处理这类信息[28]。尽管NoSQL运动方兴未艾,而且还有包括斯通布雷克在内的不少专家对其前景表示怀疑,这类数据库在大数据时代已经扮演了重要角色。

我们有理由相信未来数据库的发展将呈现多元化趋势,NoSQL不会全面取代传统关系数据库,但是业界会有更多的努力来推动NoSQL标准的统一和类似于SQL的标准非结构化数据操作语言的出现,脸书开发出的HiveQL就是朝这一方向的努力。从目前来看,大数据时代一个企业最好的数据存储方案将是不同数据库结构的最优组合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈