Hadoop中的图形处理
新兴的NoSQL技术中更令人兴奋的一个涉及图形数据的存储和处理。
我们可能会认为这句话是旧消息,因为计算机科学家几十年来发展了图形分析技术。
你说的是真的,但是新的是,通过使用Hadoop,我们可以根据大规模进行图表分析。
什么是图表数据?
数据项中的图形只是个人实体及其关系的表示。
图形的实体称为节点(或者顶点),并且图形中的实体之间的关系称为边缘(或者连接)。
表示图表中的数据集,而不是传统行和列,使得以使对象之间的关系的方式更容易处理数据。
典型的图形计算由图形中的多个节点之间的最短路径距离表示,或者简单地借助许多节点与特定节点的某个类型的连接。
图形分析的应用
最着名的图形数据库应用程序是谷歌的PageRank算法,它计算所有已知网页之间的链接关系。
Google表示Web作为巨大图表,其中网页是节点,并且从一个页面到另一页的链接表示为边缘。
(谷歌通过发布描述其图表分析项目的论文 - 标记为Pregel - 回归2010年。
)Google的图形处理对涉及计算每个网页的入站连接数。
Facebook在2013年宣布它正在使用Apache Giraph(基于Pregel Paper)时,这是一个旨在处理存储在HDFS中的图形的图形处理引擎。
它通过展示了代表所有Facebook的用户(超过10亿)和友谊(数十亿!)的图表来展示了吉拉的力量,这是超过1万亿边的边缘。
这种比例是惊人的:如果你是Facebook,你需要做出像朋友推荐的计算,那么比图形处理引擎更好的工具?
它毫不奇怪,分布式图形数据库位于每个其他值得注意的社交媒体的核心,包括Twitter,LinkedIn,Okcupid和Pinterest。
图形处理引擎可以很容易地回答社交媒体的许多实际问题。
三个例子是LinkedIn显示我们与另一个用户之间的分离程度是最短路径计算(两个节点之间最接近的连接)以及OKCupid如何显示具有共同兴趣的用户是一组协作滤波计算(最多与特定节点集的共同连接?
)。
Hadoop中的图表分析
截至2014年春季,Hadoop的图表分析仍在其早期阶段。
随着Hadoop 2的纱线的出现,图形分析和其他专业化的加工技术将在Hadoop上越来越受欢迎。
本文中提到的许多社交都使用自己的专有图形数据库和处理引擎,但Facebook是一名杰拉鱼的突出用户。
由于Facebook的(提示)批准印章,吉拉福已成为Hadoop的图表分析的热门选择,但它有一些限制。
它仅仅是一个处理引擎,因为它将数据加载为群集的内存中的图形,并且它针对面向批处理的查询进行了优化。
另一个图形处理解决方案来自Aurelius,该已经发布了一组Hadoop的开源图分析工具。
在其产品的核心是泰坦,一个使用HBase作为持久层的图表数据库,它针对交互式查询和Faunus进行了优化,这是一个图形处理引擎,它存储来自HDFS中的TITAN的图表的快照,并运行MapReduce作业。
对于Interactive(Titan)和批处理(Faunus)应用程序,Aurelius具有名为Gremlin的公共图形遍历API。
最后,Apache Spark项目具有Graphx Offshoot,它可以生成图形数据,然后在Spark框架内进行处理。