Java 为什么可以';你在这个罐子里找不到类吗?
我是新手。我正在尝试编译和运行一个spark应用程序,它需要来自本地机器上(外部)jar文件的类。如果我打开jar(在~/桌面上),我可以在本地jar中看到丢失的类,但是当我运行spark时,我得到了Java 为什么可以';你在这个罐子里找不到类吗?,java,maven,jar,apache-spark,Java,Maven,Jar,Apache Spark,我是新手。我正在尝试编译和运行一个spark应用程序,它需要来自本地机器上(外部)jar文件的类。如果我打开jar(在~/桌面上),我可以在本地jar中看到丢失的类,但是当我运行spark时,我得到了 NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier 我将jar添加到spark上下文中,如下所示 String[] jars = {"/home/pathto/Desktop/stanford-corenlp-
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
然后我尝试运行这样的提交脚本
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
如何修复此错误?尝试使用
文件:/path/to/jar/jarfile.jar/
指定jar文件位置。使用local:
意味着jar文件必须已经存在于每个工作节点上的指定位置。有关更多信息,请参阅文档的“高级依赖项管理”部分。您应该使用主类的完整路径
例如:com.package.MyMainClass
./bin/spark submit--class com.MyMainClass/home/hadoop/Documents/Harish/HelloSpark-0.0.1-SNAPSHOT.jar-config/home/hadoop/Documents/Harish/config.properties
这就是我所使用的…还要检查linux机器上的权限。您是否也获得了
ClassNotFoundException
@丹尼尔达拉博斯:是的。我得到了一个例外,我将依赖项打包到主应用程序jar中,并使用Maven部署了它。这让它起作用了。但问题仍然悬而未决。我很困惑您在--master local[4]模式下查找jar时遇到了任何问题,我认为这绕过了所有jar问题。当我开发一个程序时,我从来没有遇到过“找不到jars”类型的错误,直到我在独立集群模式下运行。你解决了这个问题吗。