2016-02-17 3 views
3

Я загрузил очень большой график в TItan 1.0.0 с помощью backend Cassandra 2.1.13. Я должен выполнить некоторые операции на графиках с помощью Spark.Как обработать большой график Titan, используя Spark

Например,

  1. Я хочу найти подграфы в очень большом графе с помощью Apache Spark
  2. Я хочу запустить кластерный (код машинного обучения) на графику, хранящейся в Titan и др.

В принципе, я буду применять некоторый алгоритм на TitanGraph используя Спарк (который я полагаю будет быстрее на большом графике)

Я могу найти какие-либо документы, касающиеся этого, как обрабатывать график , Является ли Spark правильным подходом к применению алгоритмов (машинное обучение) на большом графике? Какими должны быть мои следующие шаги? Как запустить код Spark на Titan? (Я не могу найти точные методы или функции, через которые я должен быть вставляя/с использованием кода Спарк?

Любая помощь приветствуется.

ответ

0

Вы взглянули на SparkGraphComputer? Это поможет вам применить 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 Это помогает вам много о применении OLAP и OLTP на графике с помощью Спарк/Hadoop.. Вот пример

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]] 
0

Рассмотрите возможность использования mizo для OLAP Titan с помощью искры - this answer может быть полезно.

Смежные вопросы