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 上的大图处理的主要内容,如果未能解决你的问题,请参考以下文章

Android异步载入全解析之大图处理

hadoop基础之初识Hadoop MapReduce架构

Hadoop 系统的存储引擎和在线事务处理

Android中处理大图片时图片压缩

hadoop,spark在虚拟机集群里跑还有性能上的优势吗

javascript 图片处理二合一压缩版本(点击看大图+ ALT工具提示)