Hadoop 上的大图处理
Posted
技术标签:
【中文标题】Hadoop 上的大图处理【英文标题】:Large graph processing on Hadoop 【发布时间】:2017-01-10 18:15:34 【问题描述】:我正在从事一个涉及大图上的 RandomWalk 的项目(太大而无法放入内存)。我使用 networkx 在 Python 中对其进行了编码,但很快,图形变得太大而无法放入内存,因此我意识到我需要切换到分布式系统。所以,我理解以下内容:
-
我需要使用图形数据库(Titan、neo4j 等)
图形处理框架,例如 hadoop 上的 Apache Giraph/spark 上的 graphx。
首先,是否有足够的 API 让我可以继续使用 Python 编写代码,还是应该切换到 Java?
其次,我找不到关于如何编写我的自定义遍历函数(在 Giraph 或 graphx 中)以实现随机游走算法的确切文档。
【问题讨论】:
你可以用python写graphx。可能值得关注graphframes.github.io。 【参考方案1】:我的理解是,您需要处理存储在文件系统上的大型图形。有各种分布式图处理框架,如 Pregel、Pregel+、GraphX、GPS(Stanford)、Mizan、PowerGraph 等。
这些框架值得一看。我会建议使用类似 openMPI 的 C、C++ 编码,这有助于提高效率。
Java 中的框架的内存效率不是很高。我不确定这些框架在 Python 中的 API。
在决定实施这些框架之前,有必要看看博客和论文,它们对这些框架进行了比较分析。
【讨论】:
以上是关于Hadoop 上的大图处理的主要内容,如果未能解决你的问题,请参考以下文章