2012-10-14 19 views
11

我了解pagerank背后的想法并已实施(阅读“编程集体智慧”一书时)。pagerank如何以分布式方式计算?

但我看过它可以分布在多个服务器上(因为我猜Google是这样做的)。我有点困惑,因为根据我的理解,你需要整个图表才能进行页面排名,因为每个排名都与其他排名相关。

我发现了wiki article但它没有解释太多。

有关这可能性的任何建议?另外,奖金问题:做pagerank专有的分布式pagerank的技术还是可以应用于应用于图形的其他机器学习算法的方法?

回答

8

最先进的PageRank计算方法是使用Google Pregel框架。我很确定他们现在有更复杂的东西,但这是最新发布的成果。

您可以在research blog中查看关于它的更多详细信息。 或阅读已发表论文here

我正在开发一个名为Apache HamaBulk Synchronous Parallel范例的开源版本。还有Apache Giraph,它只关注图形用例和其他许多图形用例。

像mfrankli提到的一样,还有MapReduce框架(例如Apache Hadoop),可以用来计算PageRank,但对迭代算法来说效率不高。

值得注意的是,这两种解决方案(MapReduce和BSP)都是批处理解决方案,所以它们可以用来重新计算完整web图的PageRank。由于Google更新比批量算法快得多,因此您可以期望他们经常重新计算子图的PageRank。

0

MapReduce提供了一些有趣的背景,并可能会清楚你将如何并行化这项任务。

+2

Mapreduce计算PageRank –

+1

[数据密集型文本处理与MapReduce](http://lintool.github.com/MapReduceAlgorithms/index.html)有很多MapReduce算法,包括PageRank。正如其他人所说,MapReduce并不是一种有效的PageRank方法。这篇文章(http://arxiv.org/abs/1203.2081)比较了MapReduce和BSP。 –