我已经使用neo4j实施了内容建议引擎。我喜欢Cypher,并找到图形数据库是直观的。

查看缩放到较大的数据集,我不相信NO4J + Cypher会表现出色。 Spark具有GraphX项目,我过去曾经没有使用过。

有人从Neo4J切换到Spark GraphX吗?除了可伸缩性之外,用例是否重叠?或者,GraphX是否解决了与Neo4J完全不同的问题集?

有帮助吗?

解决方案

Neo4J和Spark GraphX旨在解决不同级别的问题,它们相互互补。

它们可以通过Neo4J的Mazerunner扩展:

Mazerunner是一个NEO4J未管理的扩展和分布式图处理平台,它扩展了Neo4J以执行大数据图处理作业,同时将结果持续回到Neo4J。

Mazerunner使用消息代理将图形处理作业分配到Apache Spark的GraphX模块。当派遣代理作业时,将从Neo4J导出子图并将其写入Apache Hadoop HDFS。

在Neo4J导出了HDFS子图后,通知SPARK的单独的Mazerunner服务开始处理该数据。然后,Mazerunner服务将使用Scala和Spark的GraphX模块启动分布式图形处理算法。 GraphX算法已序列化并将其分配到Apache Spark进行处理。

Apache Spark作业完成后,结果将写回HDFS,作为将应用于NEO4J的属性更新的键值列表。

然后通知Neo4J,可以从HDFS上的Apache Spark获得属性更新列表。 Neo4J批处理导入结果,并将更新应用回原始图。

查看本教程,以了解如何结合两者:http://www.kennybastani.com/2014/11/ususe-apache-spark-and-neo4j-for-big.html

许可以下: CC-BY-SA归因
scroll top