【发布时间】:2015-04-11 02:03:02
【问题描述】:
我是新来的火花。我正在尝试编译和运行一个 spark 应用程序,该应用程序需要本地机器上的(外部)jar 文件中的类。如果我打开 jar(在 ~/Desktop 上),我可以在本地 jar 中看到缺少的类,但是当我运行 spark 我得到 p>
NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier
我像这样将 jar 添加到 spark 上下文中
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? stackoverflow.com/a/5756989/3318517 -
@DanielDarabos 是的。我得到了那个例外
-
作为一种解决方法,我将依赖项打包到主应用程序 jar 中,并使用 Maven 进行部署。这让它工作了。但问题仍然悬而未决。
-
我很困惑你在 --master local[4] 模式下找不到 jars,我认为这绕过了所有 jar 问题。当我开发一个程序时,我从来没有遇到过“找不到 jars”类型的错误,直到我在独立集群模式下运行。
-
这个问题你解决了吗? I have the same right now.
标签: java maven jar apache-spark