【IT168 专稿】开源项目Giraph的支持者或许都知道,Facebook在开发图谱搜索(Graph Search)服务时,选择采用了Giraph,并开始了对此项开源技术的研究。Facebook将Giraph规模化并作为其Open Graph工具的核心,用来处理数万亿次用户及其行为之间的连接。
Giraph的起源
据维基百科介绍,Giraph是一个迭代的图计算系统。Giraph计算的输入是由点和直连的边组成的图。例如,点可以表示人,边可以表示朋友请求。每个顶点保存一个值,每个边也保存一个值。输入不仅取决于图的拓扑逻辑,也包括定点和边的初始值。
Giraph最早出自雅虎。雅虎在开发Giraph时采用了Google工程师2010年发表的论文《Pregel:大规模图表处理系统》中的原理。后来,雅虎将Giraph捐赠给Apache软件基金会。目前所有人都可以下载Giraph,它已经成为Apache软件基金会的开源项目,并得到Facebook的支持,获得多方面的改进。
Giraph之所以格外受到关注,因为它是基于Hadoop建立的。Hadoop大数据平台已经在很多企业中部署,其中规模最大的当属Facebook。Facebook工程师、Giraph的贡献者Avery Ching在自己的博客中介绍了Facebook对Giraph的规划,并表示基于Hadoop是选择Giraph的一个重要原因。
Facebook对Giraph的改进
图形(Graph)是大数据领域最热门的关键词。为了能够更好的分析人群、位置和事件之间的联系,图形处理引擎和图形数据库利用系统节点(node,例如Facebook用户的兴趣爱好)和边(edge,用户及其兴趣爱好之间的联系)对数据进行分析。
但是到目前为止,Giraph应用还需要考虑Hadoop的兼容性。据Avery Ching介绍,Facebook选择了三个生产应用,分别是标签传递、网页排名和k-means聚类,用来推动产品的发展方向。在完整的Facebook好友关系图中运行这些应用,图中包含10亿用户和数千亿好友关系,这要求Giraph增加新的功能,主要是可扩展性的提升。
Avery Ching分享了Facebook在可扩展性和性能上对Giraph的改进,成果令人敬佩。目前Facebook可以在拥有1万亿连接的真实的社交图谱上运行一个迭代的页面排名,这一社交图谱由各类用户在4分钟之内交互产生,伴随适当的碎片收集和性能调节。除此之外,还可以聚集Facebook每月的活跃用户数据集,在几分钟内即可完成对如此大规模数据和变量的处理。
选用Hadoop领域相关的开源产品最大的好处,是有很多技术实力雄厚的公司也在使用,并不断贡献出最新的研究成果。Apache Giraph项目就已经被Facebook应用,并将该平台改进到1.0.0版本,该平台更稳定且更易使用。
还有哪些图形处理平台?
除了Giraph之外,还有Google PageRank的图形处理平台Pregel,Giraph的原理就是由此继承而来。美国国家安全局也拥有自己的图形处理平台,能够分析高达70万亿的边(edge),迄今为止仍未被超越。Twitter的开源平台名为Cassovary,自2012年3月起开始处理数十亿的边(edge)。
当然,企业也不需要专门开发一个图形处理引擎,图片社交分享网站Pinterest就将图形数据架构作为跟踪用户关注度的一种方法。还有其他一些流行的开源图形项目,也包括商业图形数据库Neo4j和GraphLab。
原文链接:Facebook’s trillion-edge, Hadoop-based and open source graph-processing engine