我是新來的火花。我正在嘗試編譯並運行需要本地機器上的(外部)jar文件中的類的Spark應用程序。如果我打開罐子(在〜/桌面),我可以看到丟失的類在當地的罐子,但是當我運行的火花,我得到爲什麼Spark無法找到這個罐子裏的類?
NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier
我的jar添加到火花背景下這樣
String[] jars = {"/home/pathto/Desktop/stanford-corenlp-3.5.0.jar"};
SparkConf conf = new SparkConf().setAppName("Simple Application").setJars(jars);
然後我嘗試運行一個提交這樣的腳本
/home/pathto/Downloads/spark-1.2.0-bin-hadoop2.4/bin/spark-submit \
--class "SimpleApp" \
--master local[4] \
target/simple-project-1.0.jar \
--jars local[4] /home/abe/Desktop/stanford-corenlp-3.5.0.jar
,撞上的NoClassDefFoundError。
我知道這意味着工作線程無法從jar中找到類。但我不確定我做錯了什麼。我已經嘗試了最後一行的不同語法(下面),但沒有任何作用。
--addJars local[4] /home/abe/Desktop/stanford-corenlp-3.5.0.jar
--addJars local:/home/abe/Desktop/stanford-corenlp-3.5.0.jar
--addJars local:/home/abe/Desktop/stanford-corenlp-3.5.0.jar
我該如何解決這個錯誤?
你還得到'ClassNotFoundException'嗎? http://stackoverflow.com/a/5756989/3318517 – 2015-02-10 22:29:47
@DanielDarabos是的。我得到那個異常 – bernie2436 2015-02-11 16:12:06
作爲一項解決方案,我將依賴項打包到主應用程序jar中,並使用Maven進行部署。這讓它工作。但問題仍然存在。 – bernie2436 2015-02-11 18:42:18