Hier ist mein Problem:Janusgraph Funken Guave Version
Wir verwenden cloudera 5.7.0 mit Java 1.8.0_74 und wir haben Funken 1.6.0, 0.1.1 janusgraph, hbase 1.2.0.
ich den folgenden Code in Gremlin-Shell:
:load data/call-janusgraph-schema-groovy
writeGraphPath='conf/my-janusgraph-hbase.properties'
writeGraph=JanusGraphFactory.open(writeGraphPath)
defineCallSchema(writeGraph)
writeGraph.close()
readGraph=GraphFactory.open('conf/hadoop-graph/hadoop-call-script.properties')
gRead=readGraph.traversal()
gRead.V().valueMap()
//so far so good everything works perfectly
blvp=BulkLoaderVertexProgram.build().keepOriginalIds(true).writeGraph(writeGraphPath).create(readGraph)
readGraph.compute(SparkGraphComputer).workers(1).program(blvp).submit().get()
Es Sternen den Funken Job Ausführung und die erste Stufe läuft jedoch in der zweiten Stufe erhalte ich eine Ausnahme:
java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.createStarted()Lcom/google/common/base/Stopwatch;
at org.janusgraph.graphdb.database.idassigner.StandarIdPool.waitForIDBlockGetter(StandartIDPool.java:136).......
Ich denke, es ist ein Guave Version Problem
Hier ist, wie ich die gremlin shell starten
#!/bin/bash
export JAVA_HOME=/mnt/hdfs/jdk.1.8.0_74
export HADOOP_HOME=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop
export HADOOP_CONF_DIR= /etc/hadoop/conf.cloudera.yarn
export YARN_HOME=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop-yarn
export YARN_CONF_DIR=$HADOOP_CONF_DIR
export SPARK_HOME=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/spark
export SPARK_CONF_DIR=$SPARK_HOME/conf
export HBASE_HOME=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hbase
export HBASE_CONF_DIR=$HBASE_HOME/conf
source "$HADOOP_CONF_DIR"/hadoop-env.sh
source "$SPARK_HOME"/bin/load-spark-env.sh
source "$HBASE_CONF_DIR"/hbase-env.sh
export JAVA_OPTIONS="$JAVA_OPTIONS -Djava.library.path=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop/lib/native -Dtinkerpop.ext=ext -Dlog4j.configuration=conf/log4j-console.properties -Dgremlin.log4j.level=$GREMLIN_LOG_LEVEL -javaagent:/mnt/hdfs/janusgraph-0.1.1-hadoop2/lib/jamm-0.3.0.jar -Dhdp.version=$HDP_VERSION"
GREMLINHOME=/mnt/hdfs/janusgraph-0.1.1-hadoop2
export HADOOP_GREMLIN_LIBS=$GREMLINHOME/lib
export CLASSPATH=$HADOOP_HOME/etc/hadoop
export CLASSPATH=$CLASSPATH:$HBASE_HOME/conf
export CLASSPATH=$GREMLINHOME/lib/*:$YARN_HOME/*:$YARN_CONF_DIR:$SPARK_HOME/lib/*:$SPARK_CONF_DIR:$CLASSPATH
cd $GREMLINHOME
export GREMLIN_LOG_LEVEL=info
exec $GREMLINHOME/bin/gremlin.sh $*
und hier ist meine conf/Hadoop-Graph/hadoop-call-script.properties Datei:
gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph
gremlin.hadoop.GraphInputFormat=org.apache.tinkerpop.gremlin.hadoop.structure.io.script.ScriptInputFormat
gremlin.hadoop.inputLocation=/user/hive/warehouse/tablex/000000_0
gremlin.hadoop.scriptInputFormat.script=/user/me/janus/script-input-call.groovy
gremlin.hadoop.outputLocation=output
gremlin.hadoop.jarsInDistributedCache=true
spark.driver.maxResultSize=8192
spark.yarn.executor.memoryOverhead=5000
spark.executor.cores=1
spark.executor.instances=1000
spark.master=yarn-client
spark.executor.memory=10g
spark.driver.memory=10g
spark.serializer=org.apache.spark.serializer.JavaSerializer
Wenn ich die Zeile "spark.master = Garn-Client" auf „spark.master ändern = local [*] "dann läuft es perfekt und lädt die Daten in den Janusgraphen, es wird keine Ausnahme geworfen. Jedoch muss ich Garn verwenden, es ist ein Muss für mich. Also habe ich die Datei guava-18.0.jar zu hdfs hinzugefügt und die Zeile "spark.executor.extraClassPath = hdfs: ///user/me/guava-18.0.jar" zu hadoop-call-script.properties hinzugefügt. Es hat das Problem nicht gelöst.
Derzeit bin ich aus Ideen und hilflos, jede Hilfe wird geschätzt.
Nicht: Ich bin mir bewusst, dass MVN Shading ist etwas mit diesem Problem verbunden, aber in diesem Fall, da ich Janusgraph Codes verwenden, um einen Funken Job zu erstellen, kann ich nicht eingreifen und schattieren die Guava-Pakete.
Thx im Voraus, Ali
Ihre Antwort hat mir sicherlich geholfen. Vielen Dank. –