2016-04-29 9 views
-2

Ich versuche, die Probe JavaStatefulNetworkWordCount Algorithmus zur Verfügung gestellt von Apache Spark-Beispiele zu laufen, aber erlebe ein Problem, wenn ich versuche, das Programm auszuführen mit Funken einreichen, ich die folgende Ausnahme erhalten:NoClassDefFound Ausnahme Spark-Streaming

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/StateSpec 
    at JavaStatefulNetworkWordCount.main(JavaStatefulNetworkWordCount.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:674) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.StateSpec 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 

Ich habe die Klassen importiert und der Code ist der gleiche wie der hier zur Verfügung gestellte:
https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/streaming/JavaStatefulNetworkWordCount.java

Ich würde jede Hilfe zu verstehen, warum dieses Problem auftritt und wie ich es beheben kann.

Antwort

0

Sie sollten wahrscheinlich auch den eigentlichen Befehl submit hinzufügen.

Ich vermute sehr, dass Sie den Parameter --class überhaupt nicht finden, wenn Sie das Spark-Jar übergeben, oder Sie nicht den richtigen qualifizierten Klassennamen verwendet haben.

0

Ich habe versucht, den folgenden Befehl:

Funken einreichen --Klasse JavaStatefulNetworkWordCount --master local [2] Ziel/SparkStreaming.jar localhost 2222

+0

ich einen Fehler in Ihrer pom.xml vermuten würde. Können Sie das auch tun? Stellen Sie sicher, dass Sie Spark und Spark-Streaming als Abhängigkeiten in Ihrem Pom definieren. Sie sind verschiedene Pakete. – OberstK