腾讯科技讯(玉临)北京时间8月25日消息,据国外媒体报道,当前,无数网站正面临着如何高效管理海量在线数据的问题,而这一问题在5年前也同样困扰着Facebook。但是,根据Facebook技术专家杰-帕里克(Jay Parikh)的说法,人们没有必要过分担忧这些问题。
Facebook的“三棱镜”计划(腾讯科技配图)
这是因为在过去几年,许多互联网的巨型公司(包括Facebook)搭建了大量的软件平台,并通过数以万计的分布式服务器来解决在线信息爆炸的问题。此外,这些巨头们还同任何有需求的公司分享其“大数据”处理软件。
通过与雅虎合作,Facebook成为了最早涉足Hadoop技术的公司。Hadoop是一种无所不包的软件平台,可以用来处理和分析互联网海量数据。雅虎把这一开源项目当作是一种有助于建立索引的工具,从而加强其自身搜索引擎的功能。但是,之后参与进来的公司开始把Hadoop加入到自己的互联网项目中,并将其作为代码优化的必备工具。
其结果是,Hadoop演化成了一种可以处理100PB数据的平台(1PB=1024TB=1048576GB)。一直以来,帕里克专注于Facebook快速增长的软硬件基础设施建设。据他表示,“5年前,我们开始研发这些技术。当时,我们可以做的事情以及开发的速度都受到了一定的限制。此后,开源社区发生了巨大的变化,最重要的就是很多这些限制、障碍都被去除了。人们目前在互联网上可以做的事情超出了我们当时的想象。”
但是现在,Facebook正开始着手处理更为棘手的数据雪崩问题(avalanche of data),因为现在又出现了新的限制需要突破。本周,在Facebook位于门洛帕克总部举行的一次记者招待会上,帕里克披露了Facebook已经开发出两种全新软件平台的消息,并表示Hadoop可以支撑的数据规模将进一步扩大。另外,Facebook还决定将这两款软件进行开源。
第一种平台叫做“Corona(日冕)”,它可以让你在数目庞大的Hadoop服务器之间运行大量的任务,并且不用担心软件错误会导致整个服务器簇出现崩溃。不过,第二种平台更加有意义。它的名字叫做“Prism(三棱镜)”,可以让Hadoop服务器簇运行在全球范围内的多个数据中心上,其规模将更加庞大。
帕里克表示,“‘Prism’可以让我们任意转移数据,不论我们是在俄勒冈州的普赖恩维尔、北卡罗来纳州的克利夫兰,还是远在欧洲的瑞典。”
Hadoop的基本思想是基于10年前发表的两篇研究论文。论文探讨的是谷歌(微博)为了让搜索引擎更好的运行而搭建的两种大规模软件平台:GFS和MapReduce。GFS是谷歌文件系统的简称,它是一种在数以千记的服务器之间存储数据的工具,而MapReduce则可以让你将这些服务器的处理能力集中起来,从而将数据转换成更为有用的东西。Hadoop的工作方式与此几乎一样——Hadoop文件系统(简称HDFS)负责数据存储,而Hadoop MapReduce则负责数据处理。
这两种Hadoop平台已经帮助像雅虎和Facebook这样的公司成功运行了许多年,但是它们并不完美。比如说,随着Facebook用户数超过9亿人,Hadoop的缺陷也被相应放大。最为明显的是,两种平台都因存在“单点故障”的问题而被广为诟病。一旦主服务器出现问题,整个服务器簇都将随之瘫痪,尽管这一时间可能不长。
最近几月,Facebook通过AvatarNode项目排除了HDFS平台上的单点故障问题。这一开源Hadoop项目的前身是一个名叫HA NameNode的解决方案,它可以大大提高系统的可用性。但是,MapReduce上的单点故障依然存在。而现在,凭借Corona平台,Facebook彻底的解决了这一问题。
从传统意义上来讲,MapReduce使用的是单一“任务跟踪器(job tracker)”来管理服务器簇上的任务。但是,Corona却能生成多个任务跟踪器。帕里克表示,“它让我们可以在MapReduce基础架构上跟踪更多的任务。我们可以将系统的吞吐量进一步提高,从而让Facebook内部更多的开发团队和产品顺利运转。”
“在过去,一旦任务跟踪器出了问题,一切工作都需要停下来,之后你必须要重头开始才行,这使得整个业务都会受到影响。而现在,有很多迷你的任务跟踪器在进行工作,所负责的工作也是相互独立的。”
在硅谷,有一家名叫MapR的Hadoop创业型公司,托莫-希兰(Tomer Shiran)是该公司最早的一批员工。他表示,MapR公司提供了一种具有类似优化措施的Hadoop版本,但是他表示Hadoop开源版本依然不支持多个任务跟踪器。希兰曾经使用过一个版本的Corona,据他表示这一平台还可以让用户进一步加快MapReduce的工作速度。