2016-07-27 12 views
0

Ich bin ein Spark-Programm in Java geschrieben & Ich verwende das Beispiel Wordcount Beispiel. Ich habe eine JAR-Datei erstellt, aber wenn ich den Spark-Job übergebe, wird ein Fehler ausgegeben.Kann kein Spark-Java-Programm ausführen

$ spark-submit --class WordCount --master local \ home/cloudera/workspace/sparksample/target/sparksample-0.0.1-SNAPSHOT.jar 

Ich erhalte die folgenden Fehler

java.lang.ClassNotFoundException: wordCount 
    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) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:270) 
    at org.apache.spark.util.Utils$.classForName(Utils.scala:175) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:689) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

Edited i auch meine pom.xml bin Zugabe, so dass Sie helfen können.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.igi.sparksample</groupId> 
    <artifactId>sparksample</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 
    <dependency> <!-- Spark dependency --> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-core_2.10</artifactId> 
<version>1.6.0</version> 
<scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.6.0</version> 
</dependency> 
</dependencies> 
</project> 

Antwort

2

Nach dem Versuch so viele Kombinationen und ein wenig R & D ich löste mein Problem. Ausgabe war in meinem Zündbefehl einreichen habe ich es auf diese

spark-submit --class com.xxx.sparksample.WordCount --master local /home/cloudera/workspace/sparksample/target/sparksample-0.0.1-SNAPSHOT.jar 

und es funktionierte.

+2

Nun ..... @ Binary Nerd und ich schlug das gleiche vor: P –

+0

Danke @ShubhamChaurasia. Upvoted Vielen Dank für Ihre Hilfe. –

0

Die Klasse WordCount kann nicht gefunden werden. Sie müssen wahrscheinlich um das Paket enthalten, die Klasse in ist, so haben Sie die volle Classpath, dh:

--class <PACKAGE>.WordCount

+0

Beim Erstellen des Projekts in Eclipse gab ich keinen Paketnamen. Es zeigt das Standardpaket an. –

+0

Danke @BinaryNerd –

0

Der Fehler, den Sie kein Problem mit Funken geschrieben hat zeigen.

Sie müssen jedoch einen Tippfehler in Ihrem Programm haben. Java warf eine ClassNotFoundException Suche nach wordCount, wo es höchstwahrscheinlich WordCount sein sollte, mit einer Hauptstadt W.

Bitte überprüfen Sie die Namen Ihrer Klassen und Ihre Importe.

+0

Ich änderte den Namen in WordCount, aber es löste das Problem nicht, ich bekomme den gleichen Fehler. –

0

Stellen Sie sicher, dass der Name der Klasse (Wordcount oder WordCount oder was auch immer ...), den Sie an spark-submit übergeben, genau dem entspricht, was Sie definiert haben.
Stellen Sie sicher, dass die Verpackung korrekt ist.
Um zu überprüfen, öffnen/extrahieren Sie Ihr jar und sehen Sie den Klassennamen und die Pakethierarchie.

+0

Ich überprüfte es, Name der Klasse ist korrekt –

Verwandte Themen