Ich baute * .jar-Datei für meine Apache Spark Scala-Projekt mit Maven. Wenn ich versuche, die Hauptklasse auszuführen, gibt es bei einer Zeile des Codes den Fehler Exception in thread "main" java.lang.NoClassDefFoundError
für die Klasse org.apache.spark.ml.recommendation.ALS
.java.lang.NoClassDefFoundError für spark-submit
Ich betreibe die Funken einreichen wie folgt:
sudo -u hdfs /usr/bin/spark-submit --class
org.apache.spark.examples.ml.MyTest spark-examples-*.jar --rank 10 --path
/home/ubuntu/data
Es ist wie es aussieht, kann nicht nur org.apache.spark.ml.recommendation.ALS
finden. 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 Sie dieses Problem lösen?
UPDATE 1:
habe ich maven-assebly
Plugin pom.xml
und auch assembly.xml
in den Ordner resources
. Dann habe ich erfolgreich mvn package
gemacht, 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
Danke. Ich habe 'jar -tvf <.jar> | grep "ALS" 'aus dem Terminal (das Verzeichnis, in dem sich' jar' Datei befindet). Es heißt 'bash: Syntaxfehler nahe dem unerwarteten Token' | '' – Klue
jar -tvf –
Manoj
jar -tvf com.fasterxml.jackson.core.jar | grep "ParserBase" 16912 Mo Okt 08 19:43:02 IST 2012 com/schneller xml/jackson/core/base/ParserBase.class L-IDC2CUDKQ2-M: Downloads msing20 $ – Manoj