0

我正在研究一个涉及大图上的 RandomWalk 的项目(太大而无法放入内存)。我使用 networkx 在 Python 中对其进行了编码,但很快,图形变得太大而无法放入内存,因此我意识到我需要切换到分布式系统。所以,我理解以下内容:

  1. 我将需要使用这样的图形数据库(Titan、neo4j 等)
  2. 一个图形处理框架,例如 hadoop 上的 Apache Giraph/spark 上的 graphx。

首先,是否有足够的 API 让我可以继续使用 Python 编写代码,还是应该切换到 Java?

其次,我找不到关于如何编写自定义遍历函数(在 Giraph 或 graphx 中)以实现随机游走算法的确切文档。

4

1 回答 1

0

我的理解是,您需要处理存储在文件系统上的大型图形。有各种分布式图处理框架,如 Pregel、Pregel+、GraphX、GPS(Stanford)、Mizan、PowerGraph 等。

这些框架值得一看。我会建议使用类似 openMPI 的 C、C++ 编码,这有助于提高效率。

Java 中的框架的内存效率不是很高。我不确定 Python 中这些框架的 API。

在决定实施它们之前,有必要查看对这些框架进行比较分析的博客和论文。

于 2017-06-04T18:35:31.053 回答