2016-04-29 4 views
0

Ich folge Schnellstart Spark 1.6 Dokument, http://spark.apache.org/docs/latest/quick-start.htmlWarum bekomme ich nach dem schnellen Start von Spark eine SNAPSHOT-JAR-Datei, in der sich keine Klassendatei befindet?

bei diesem Schritt:

# Paket ein Glas

$ sbt Paket

Ihre Anwendung enthält ...

[info] Verpackung {..}/{..}/target/scala-2.10/simple-project_2.10-1.0.jar

Was ich bekam, ist "simple_2.10-0.1-SNAPSHOT.jar" und es gibt keine Klasse in dieser JAR-Datei. Das wird ClassNotFoundException in dem nächsten Schritt verursachen, wenn ich den Spark-submit-Befehl ausführe.

Ich habe keine Ahnung, was dieses Problem verursachen kann (warum habe ich eine Jar-Datei mit "SNAPSHOT" und warum gibt es keine Klasse in der JAR-Datei). Ich frage mich, ob jemand darauf hinweisen kann. Vielen Dank!

Antwort

1

Zuerst tritt die SNAPSHOT auf, weil Sie keinen version in Ihrer sbt-Datei angegeben haben.

Zweitens, woher wissen Sie, dass es keine Klasse in Ihrer JAR-Datei gibt? Hast du eine jar tf darauf laufen lassen? Wenn Sie es getan haben und es tatsächlich leer ist, dann ist meine Vermutung, dass Sie die Quelldateien nicht in der erwarteten Verzeichnisstruktur gespeichert haben, also hat es sie nicht aufgenommen. Sie können dies überprüfen, indem Sie sbt clean compile ausführen. Sie sollten sehen, dass Dateien in der richtigen Struktur kompiliert werden.

+0

Ich glaube, ich eine Version in der SBT-Datei angeben: Name: = "Simple Project" Version: = "1.0" scalaVersion: = „2.10.5” libraryDependencies + = "org.apache.spark" % % "spark-core"% "1.6.1" – Lubor

+0

Haben Sie Ihre sbt nach dem Speichern der Datei neu geladen? Weil Ihre Version als '0,1' von Ihnen angezeigt wird, posten Sie –

+0

Ich extrahiere die JAR-Datei, um zu sehen, was es beinhaltet und ich kann nur sehen META-INF-Datei. – Lubor