2016-02-17 51 views
3

我已經在後端Cassandra 2.1.13的TItan 1.0.0中加載了非常大的圖形。我必須使用Spark在圖上執行一些操作。如何使用Spark處理大型Titan圖形

例如,

  1. 我想使用Apache星火
  2. 我想對存儲在泰坦圖等運行一些集羣(機器學習代碼)找到一個非常大的圖形子圖。

基本上,我將在TitanGraph使用星火(我想會更快上了一個大圖)

我能找到關於這個的任何文檔應用一些算法,如何處理圖形。 Spark是一種在大圖上應用算法(機器學習)的正確方法嗎?我的下一步應該是什麼? 如何在泰坦上運行我的Spark代碼? (我無法找到確切的方法或功能,通過它,我應該插入/使用星火代碼?

任何幫助表示讚賞。

回答

0

有你SparkGraphComputer一看?這將幫助你申請小鬼查詢這將在星火框架內執行有一個看看這個例子:

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這可以幫助您在使用星火/ 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]]