Я построил файл * .jar для моего проекта apache spark scala с использованием maven. Когда я пытаюсь выполнить основной класс, в некоторой строке кода он предоставляет ошибку Exception in thread "main" java.lang.NoClassDefFoundError
для класса org.apache.spark.ml.recommendation.ALS
.java.lang.NoClassDefFoundError для spark-submit
Я запустить искровым представить следующим образом:
sudo -u hdfs /usr/bin/spark-submit --class
org.apache.spark.examples.ml.MyTest spark-examples-*.jar --rank 10 --path
/home/ubuntu/data
Похоже на то только не может найти org.apache.spark.ml.recommendation.ALS
. У меня есть следующие операторы импорта в этом классе:
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
Как решить эту проблему?
UPDATE 1:
Я добавил maven-assebly
pom.xml
плагин, а также assembly.xml
в папку resources
. Затем я успешно сделал mvn package
, но опять та же проблема.
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
Спасибо. Я запустил 'jar -tvf <.jar> | grep "ALS" 'от терминала (каталог, в котором находится файл' jar'). Он говорит 'bash: синтаксическая ошибка около неожиданного токена' | '' – Klue
jar -tvf <имя файла jar, которое должно содержать класс ALS> – Manoj
jar -tvf com.fasterxml.jackson.core.jar | grep "ParserBase" 16912 Mon Oct 08 19:43:02 IST 2012 com/quickxml/jackson/core/base/ParserBase.class L-IDC2CUDKQ2-M: загрузка msing20 $ – Manoj