如何使用Spark

时间:2016-02-17 18:15:26

标签: graph apache-spark cassandra graph-databases titan

我在TItan 1.0.0中加载了非常大的图形,后端是Cassandra 2.1.13。我必须使用Spark在图表上执行一些操作。

例如,

  1. 我想使用Apache Spark
  2. 在一个非常大的图中找到子图
  3. 我想在Titan等存储的图表上运行一些聚类(机器学习代码)
  4. 基本上,我将使用Spark在TitanGraph上应用一些算法(我想在大图上会更快)

    我能够找到与此相关的任何文档,如何处理图表。 Spark是一种在大图上应用算法(机器学习)的正确方法吗?我的下一步应该是什么? 如何在Titan上运行我的Spark代码? (我无法找到插入/使用Spark代码的确切方法或功能?

    感谢任何帮助。

2 个答案:

答案 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可能会有所帮助。