我在TItan 1.0.0中加载了非常大的图形,后端是Cassandra 2.1.13。我必须使用Spark在图表上执行一些操作。
例如,
基本上,我将使用Spark在TitanGraph上应用一些算法(我想在大图上会更快)
我能够找到与此相关的任何文档,如何处理图表。 Spark是一种在大图上应用算法(机器学习)的正确方法吗?我的下一步应该是什么? 如何在Titan上运行我的Spark代码? (我无法找到插入/使用Spark代码的确切方法或功能?
感谢任何帮助。
答案 0 :(得分:0)
你看过SparkGraphComputer了吗?这有助于您应用将在Spark框架上执行的Gremlin查询。看看这个例子:
gremlin> graph = GraphFactory.open('conf/hadoop/hadoop-gryo.properties')
==>hadoopgraph[gryoinputformat->gryooutputformat]
gremlin> g = graph.traversal(computer(SparkGraphComputer))
==>graphtraversalsource[hadoopgraph[gryoinputformat->gryooutputformat], sparkgraphcomputer]
gremlin> :remote connect tinkerpop.hadoop graph g
==>useTraversalSource=graphtraversalsource[hadoopgraph[gryoinputformat->gryooutputformat], sparkgraphcomputer]
==>useSugar=false
gremlin> :> g.V().group().by{it.value('name')[1]}.by('name')
==>[a:[marko, vadas], e:[peter], i:[ripple], o:[josh, lop]]
另一种方法是使用GraphComputer。这有助于您在使用Spark / Hadoop在图上应用OLAP和OLTP。这是一个例子
gremlin> result = graph.compute().program(PageRankVertexProgram.build().create()).submit().get()
==>result[tinkergraph[vertices:6 edges:0],memory[size:0]]
gremlin> result.memory().runtime
==>95
gremlin> g = result.graph().traversal(standard())
==>graphtraversalsource[tinkergraph[vertices:6 edges:0], standard]
gremlin> g.V().valueMap('name',PageRankVertexProgram.PAGE_RANK)
==>[gremlin.pageRankVertexProgram.pageRank:[0.15000000000000002], name:[marko]]
==>[gremlin.pageRankVertexProgram.pageRank:[0.19250000000000003], name:[vadas]]
==>[gremlin.pageRankVertexProgram.pageRank:[0.4018125], name:[lop]]
==>[gremlin.pageRankVertexProgram.pageRank:[0.19250000000000003], name:[josh]]
==>[gremlin.pageRankVertexProgram.pageRank:[0.23181250000000003], name:[ripple]]
==>[gremlin.pageRankVertexProgram.pageRank:[0.15000000000000002], name:[peter]]
答案 1 :(得分:0)
考虑使用mizo使用spark来实现Titan的OLAP - this answer可能会有所帮助。