繁体   English   中英

为什么Spark无法在此Jar中找到类?

[英]Why can't Spark find the classes in this Jar?

我是新来的火花。 我正在尝试编译和运行一个火花应用程序,该应用程序需要本地计算机上(外部)jar文件中的类。 如果打开罐子(在〜/ Desktop上),我可以看到本地罐子中缺少的类,但是当我运行spark时,我得到了

NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier

我将罐子添加到这样的火花上下文中

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

如何解决此错误?

尝试使用file:/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机器上的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM