/ / java.lang.NoClassDefFoundError für Spark-Submit - Java, Scala, Maven, Apache-Funke

java.lang.NoClassDefFoundError für Spark-Submit - Java, Scala, Maven, Apache-Funke

Ich habe * .jar-Datei für mein Apache-Spark-Scala-Projekt mit Maven erstellt. Wenn ich versuche, die Hauptklasse auszuführen, wird bei einer Zeile des Codes der Fehler angezeigt Exception in thread "main" java.lang.NoClassDefFoundError für die Klasse org.apache.spark.ml.recommendation.ALS.

Ich führe den Spark-Submit wie folgt aus:

sudo -u hdfs /usr/bin/spark-submit --class
org.apache.spark.examples.ml.MyTest spark-examples-*.jar --rank 10 --path
/home/ubuntu/data

Es sieht so aus, als ob es nur nicht finden kann org.apache.spark.ml.recommendation.ALS. Ich habe die folgenden Importanweisungen in der Klasse:

package org.apache.spark.examples.ml

import java.util.Date
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.examples.mllib.AbstractParams
import org.apache.spark.ml.recommendation.ALS
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{Row, SQLContext}
import scopt.OptionParser

Wie kann ich dieses Problem lösen?

UPDATE 1:

Ich fügte hinzu maven-assebly Plugin zu pom.xml und auch assembly.xml in den Ordner resources. Dann habe ich erfolgreich gemacht mvn package, aber wieder das gleiche Problem.

UPDATE 2:

jar -tvf spark-examples-1.5.3-SNAPSHOT-hadoop2.2.0.jar | grep "ALS"

2678 Mon May 23 13:11:44 CEST 2016 org/apache/spark/examples/ml/recommendation/MyFunc$ALSParams.class

Antworten:

0 für die Antwort № 1

Finden Sie zuerst Grund für das Scheitern.
1) Fehlt die Klasse?
2) oder Es ist Initialisierungsproblem.

Um herauszufinden, ob eine Klasse verfügbar ist, führen Sie den Befehl aus jar -tvf <.jar> | grep "class name" Auf diese Weise können Sie herausfinden, ob eine Klassendatei vorhanden ist oder nicht, oder ihr Initialisierungsproblem.