APP下载

Hadoop的中国前途

2009-12-09刘洪宇

中国计算机报 2009年45期
关键词:雅虎开源百度

刘洪宇

Hadoop在中国的征程出奇地顺利,从每年一次的小型窄众沙龙,发展成为今年11月中旬,数百名爱好者参加的学术大会,仅仅用了两年。“过去这是一个草根运动,现在则得到了企业界的一致支持,尤其是年轻的同学们的热情参与。”中国科学院计算技术研究所总工程师徐志伟研究员对此深感欣慰。就在这两年中,一个憨态可掬的翘鼻子小白象(Hadoop Logo)开始如那个经典的Linux小企鹅一样深入人心。在云计算的大趋势下,这一开源项目更是以其出众的技术特性掀起了一阵不小的“Hadoop云旋风”。

雅虎贡献不遗余力

Hadoop是一个分布式系统的基础架构,由Apache基金会开发。借助它,用户可以在不了解分布式底层细节的情况下开发分布式程序,并且能够充分利用集群的运算和存储能力。

让这项技术为人所知的是Google。Google有个公开的秘密,它在数据中心使用廉价的Linux PC组成集群,运行它向公众提供的各种服务,而这种形态因为符合定义,被认为是云计算的雏形。在这样的集群上,开发人员该如何进行分布式开发呢?

Google有三个法宝,即核心组件GFS、MapReduce和BigTable,分别是分布式文件系统、分布式运算的抽象操作以及大型的分布式数据库。借助它们,即使是分布式开发的新手也可以迅速使用Google的基础设施。Hadoop项目也同样由三部分HDFS、MapReduce和Hbase组成,分别对应Google的三大组件,是其开源实现。

Hadoop被认为是云计算初级阶段的实现。近几年来,Hadoop之所以产生了吸引学术界和产业界的巨大魅力,特别是很多互联网公司使用Hadoop进行生产和运行,主要得益于Hadoop面向应用问题,针对处理海量数据而设计,这正是以互联网公司为代表的企业所要面对的;同时,Hadoop是开放源码软件,交流和合作平台也更为广阔。

真正成就Hadoop,并从中受益最多是雅虎。据雅虎工程副总裁、Hadoop项目负责人Eric Baldeschwieler介绍,雅虎是第一个深入使用和开发Hadoop的公司,现在有超过一万个CPU的单个集群应用Hadoop,超过500个研发人员在使用Hadoop。“雅虎主页的数据虽然并不是直接从Hadoop上取得的,但数据处理都是在Hadoop上完成的。你在雅虎主页上进行搜索和看到广告,服务后台都是由Hadoop上的应用完成的。雅虎Hadoop集群还有很大一部分做相关的后台处理,现在也用Hadoop进行内容处理、垃圾邮件过滤、内容优化和内容管理,雅虎提供的内容也存储在Hadoop平台上。Hadoop在雅虎得到了非常全面的应用。”Baldeschwieler说。

身为当今最大的Hadoop用户,为其贡献最多的也是雅虎,72%的Hadoop开发是由雅虎贡献的。Baldeschwieler表示,投资Hadoop,对于雅虎来说具有战略意义。而他很高兴地看到,雅虎的贡献率正在降低,这意味着其他机构为开源所作的贡献正在逐渐增大。“我们提供了一个Hadoop分发版本,在向外分发之前,雅虎有一组专门的集群用来测试Hadoop的性能和稳定性。也有一个2500个节点的集群专门用来验证Hadoop新概念和新设计,最后还有一个大规模集群用于生产运行。Hadoop分发版本在各个层次的集群上都经过了运行和验证。” Baldeschwieler表示,Hadoop分发版本与雅虎内部使用的完全一致,雅虎能做到的,其他使用者也可以做到。

Facebook尝到了甜头

雅虎处理的海量数据规模以及使用的大规模集群已经在前面做好了充分的探路工作。有了雅虎牵头示范,更多用户开始把目光投向了这一特色鲜明的技术。Hadoop的出现,使研发人员不需要把知识再转移给开发人员,他们可以直接开发具有生产品质的产品。Facebook就是其中的代表。

资深工程师邵铮介绍说,Hadoop在Facebook的应用是从2007年中开始的,当时Facebook的生产环境遭遇了传统数据仓库的可伸缩性问题,“我们发现需要使用超过20小时才能处理完一天的数据,照这样发展,这个时间不久就会超过一天,那样,Facebook就没法跟上应用的需求了。”

在选择解决方案时,邵铮的团队主要考虑三方面要求:一是可伸缩性,希望这个系统能支持几百台到数千台集群的规模;二是开放性,系统能很容易地加入新功能,这样在遇到新问题时就很容易修改;三是时间,业务需要新系统能尽快推出。

“我们率先排除了专有系统,也放弃了自己从头做起,那将花费太多时间,而最后就在Hadoop上与其他方案进行比较。”邵铮团队最后还是选择了Hadoop。“它的性能可能不是最好的,但潜力是最大的,当时我们使用0.15版本,遇到并且修复了很多bug,但没有遇到大问题。”

邵铮认为,Hadoop的可伸缩性非常强,雅虎对Hadoop始终支持,社区不断扩展,很多公司在使用Hadoop,这就增强了团队的信心。但它用起来不是很方便,公司内部除了工程师,数据分析师也希望使用这个系统。为此,Facebook基于Hadoop开发了Hive项目,使用SQL语言来操作数据,这就解决了易用性的问题。10个工程师用了近6个月推出了Hive的第一个版本,并随后将之开源。

如今,可伸缩性问题得到了较好的解决,Facebook已经在600台服务器上运行,每两周还会加入一些新机器。而开源的Hive,不仅吸收了大量代码,而且还成为学术研究、同行应用的通用平台。这样可以减少大量重复劳动,一举多得。

好技术在中国也吃香

在中国,Hadoop也掀起了一阵不小的云旋风。提出“框计算”概念的百度,就有这样一支特种部队。30多名分布式系统开发工程师、10多名测试工程师和多名运维工程师组成了百度分布式团队,承担百度分布式平台开发、建设及维护。该平台承载百度大部分数据存储和计算服务,为百度业务提供基础支撑。投入使用的就有开源分布式平台,Hadoop受到他们的密切关注。

有着云服务商雄心的中国移动也早就开展了一项名为“Big Cloud”的研究项目。“我们要建立一个大系统,一是满足我们内部对HPC的需求,中国移动拥有海量数据,而且还在快速增长;二是利用这些技术来建立互联网服务平台,将云服务出售给公众。”中国移动通信研究院院长黄晓庆介绍说,中国移动在基础架构和平台级服务的基础上,希望能提供SaaS,帮助中小企业减少IT成本和复杂性。这些设想都将利用云计算来实现。

实现这些设想的就是“Big Cloud”,目前刚刚发布的Big Cloud 1.5版本就基于稳定的Hadoop版本。“我们在Hadoop上做了很多工作,比如数据挖掘应用,我们开发了基于Hadoop的算法,在很多实际生产运行中挖掘用户关系。与传统系统相比,这个系统使用了1/6的成本实现了6倍的性能。”黄晓庆说。

而作为国立研究机构,中科院计算所也长期关注并投入Hadoop研究,尤其是网络重点实验室,一个重要的科研方向就是分布式系统软件与网络计算,这正是云计算的核心技术。列存储并行数据处理系统等一系列科研成果正是基于Hadoop平台。“现在我们正走向云计算,要考虑云计算在中国怎么为老百姓,为这些未来上十亿的IT用户服务。我们叫它普惠计算,已经开始看到一些基础应用,这是中科院计算所今后几十年的一个重要任务和研究机会。”徐志伟表示。

猜你喜欢

雅虎开源百度
Robust adaptive UKF based on SVR for inertial based integrated navigation
五毛钱能买多少头牛
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究
百度医生
百度“放卫星”,有没有可能?
六条忠告