복붙노트

[HADOOP] Spark 클러스터 및 Cassandra 용 JanusGraph 설정 및 구성

HADOOP

Spark 클러스터 및 Cassandra 용 JanusGraph 설정 및 구성

단일 머신에서 JanusGraph (0.1.0)와 Spark (1.6.1)를 실행 중입니다. 여기에 설명 된대로 구성했습니다. gremlin-console에서 SparkGraphComputer로 그래프에 액세스 할 때는 항상 비어 있습니다. 로그 파일에 오류를 찾을 수 없습니다. 단지 빈 그래프 일뿐입니다.

JanusGraph를 Spark과 함께 사용하는 사람이 누구이며 그의 구성과 속성을 공유 할 수 있습니까?

JanusGraph를 사용하여 예상되는 출력을 얻습니다.

gremlin> graph=JanusGraphFactory.open('conf/test.properties')
==>standardjanusgraph[cassandrathrift:[127.0.0.1]]
gremlin> g=graph.traversal()
==>graphtraversalsource[standardjanusgraph[cassandrathrift:[127.0.0.1]], standard]
gremlin> g.V().count()
14:26:10 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [()]. For better performance, use indexes
==>1000001
gremlin>

GraphComputer로 Spark와 함께 HadoopGraph를 사용하면 그래프가 비어 있습니다.

gremlin> graph=GraphFactory.open('conf/test.properties')
==>hadoopgraph[cassandrainputformat->gryooutputformat]
gremlin> g=graph.traversal().withComputer(SparkGraphComputer)
==>graphtraversalsource[hadoopgraph[cassandrainputformat->gryooutputformat], sparkgraphcomputer]
gremlin> g.V().count()
            ==>0==============================================>   (14 + 1) / 15]

내 conf / test.properties :

#
# Hadoop Graph Configuration
#
gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph
gremlin.hadoop.graphInputFormat=org.janusgraph.hadoop.formats.cassandra.CassandraInputFormat
gremlin.hadoop.graphOutputFormat=org.apache.tinkerpop.gremlin.hadoop.structure.io.gryo.GryoOutputFormat
gremlin.hadoop.memoryOutputFormat=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat
gremlin.hadoop.memoryOutputFormat=org.apache.tinkerpop.gremlin.hadoop.structure.io.gryo.GryoOutputFormat

gremlin.hadoop.deriveMemory=false
gremlin.hadoop.jarsInDistributedCache=true
gremlin.hadoop.inputLocation=none
gremlin.hadoop.outputLocation=output

#
# Titan Cassandra InputFormat configuration
#
janusgraphmr.ioformat.conf.storage.backend=cassandrathrift
janusgraphmr.ioformat.conf.storage.hostname=127.0.0.1
janusgraphmr.ioformat.conf.storage.keyspace=janusgraph
storage.backend=cassandrathrift
storage.hostname=127.0.0.1
storage.keyspace=janusgraph

#
# Apache Cassandra InputFormat configuration
#
cassandra.input.partitioner.class=org.apache.cassandra.dht.Murmur3Partitioner
cassandra.input.keyspace=janusgraph
cassandra.input.predicate=0c00020b0001000000000b000200000000020003000800047fffffff0000
cassandra.input.columnfamily=edgestore
cassandra.range.batch.size=2147483647

#
# SparkGraphComputer Configuration
#
spark.master=spark://127.0.0.1:7077
spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.executor.memory=100g

gremlin.spark.persistContext=true
gremlin.hadoop.defaultGraphComputer=org.apache.tinkerpop.gremlin.spark.process.computer.SparkGraphComputer

여기에 설명 된대로 HDFS가 올바르게 구성되어있는 것 같습니다.

gremlin> hdfs
==>storage[DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_178390072_1, ugi=cassandra (auth:SIMPLE)]]]

해결법

  1. ==============================

    1.다음 속성을 수정하십시오.

    다음 속성을 수정하십시오.

    janusgraphmr.ioformat.conf.storage.keyspace=janusgraph
    storage.keyspace=janusgraph
    

    바꾸기 :

    janusgraphmr.ioformat.conf.storage.cassandra.keyspace=janusgraph
    storage.cassandra.keyspace=janusgraph
    

    기본 키 공간 이름은 janusgraph입니다. 따라서 속성 이름의 실수에도 불구하고 다른 키 공간 이름을 사용하여 데이터를로드하지 않으면 해당 문제를 관찰하지 못했을 것입니다.

    후자의 등록 정보는 구성 참조 서에 설명되어 있습니다. 또한 Hadoop-Graph 사용을 위해 문서를 개선하기 위해이 미해결 문제에 유의하십시오.

  2. from https://stackoverflow.com/questions/43805558/setup-and-configuration-of-janusgraph-for-a-spark-cluster-and-cassandra by cc-by-sa and MIT license