2016-09-30 8 views
3

Я пытаюсь запустить Java-класс, который читает GML-файл, и я использую Tinkerpop и GMLReader для этого, проблема в том, что я пытаюсь запустить его с помощью искры, это дает мне исключение
Я написал простой код для тестирования:Запустить проект с Spark и maven

public static void main(String[] args) throws IOException { 
    TinkerGraph graphs = new TinkerGraph(); 
    String in = "/home/salma/Desktop/celegansneural.gml"; 
    GMLReader.inputGraph(graphs, in); 
    System.out.println(graphs); 
} 

команда, я использую для запуска класса:

[email protected]:/usr/local/spark# ./bin/spark-submit --class graph_example.WordCount --master local[2] ~/workspace/graph_example/target/graph_example-0.0.1-SNAPSHOT.jar 

Ошибка:

Exception in thread "main" java.lang.NoClassDefFoundError: 
com/tinkerpop/blueprints/impls/tg/TinkerGraph 
     at graph_example.WordCount.main(WordCount.java:51) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569) 
     at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166) 
     at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189) 
     at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110) 
     at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
    Caused by: java.lang.ClassNotFoundException: com.tinkerpop.blueprints.impls.tg.TinkerGraph 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     ... 10 more 
    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 

ответ

0

Вы должны указать зависимость, содержащую реализацию TinkerGraph. Если я не ошибаюсь, вы должны предоставить this jar

Затем вы запускаете spark-submit как обычно, но с --jars /some/location/blueprints-core-2.6.0.jar

Это объясняется в official documentation:

При использовании искрового отправки, приложение с любыми баночками , включенное в опцию --jars, автоматически переносится в кластер .

+0

Это работает thanx (y) –

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

  • Нет связанных вопросов^_^