Graph 如何使用Spark处理大型Titan图形
我在TItan 1.0.0中加载了非常大的graph,后端是Cassandra 2.1.13。我必须使用Spark对图形执行一些操作 比如说,Graph 如何使用Spark处理大型Titan图形,graph,apache-spark,cassandra,graph-databases,titan,Graph,Apache Spark,Cassandra,Graph Databases,Titan,我在TItan 1.0.0中加载了非常大的graph,后端是Cassandra 2.1.13。我必须使用Spark对图形执行一些操作 比如说, 我想使用ApacheSpark在一个非常大的图中查找子图 我想在Titan中存储的图上运行一些聚类(机器学习代码),等等 基本上,我将使用Spark在TitanGraph上应用一些算法(我认为在大图上会更快) 我能够找到任何与此相关的文档,以及如何处理图表。Spark是在大型图上应用算法(机器学习)的正确方法吗?我下一步该怎么做? 如何在Titan上运行
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]]
另一种方法是使用。这对使用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]]
考虑使用spark对Titan的OLAP进行处理——可能会有所帮助