【发布时间】:2018-07-14 19:37:22
【问题描述】:
我正在尝试使用Scala 2.11 向我的Apache Spark 2.2.1 集群提交一个JAR。我在我的 JAR 中包含了一些额外的依赖项,即 Apache Commons CLI,并将它们全部打包到一个胖 JAR 中。但是,当我提交我的 Spark 应用程序时,我收到了 NoSuchMethodError。我很确定这不是由于 Scala 版本的不一致,而是由于依赖关系有些奇怪。
命令就是spark-submit myjar.jar [arguments]
这是错误:
线程“主”java.lang.NoSuchMethodError 中的异常: org.apache.commons.cli.Options.addRequiredOption(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/ 字符串;)Lorg/apache/commons/cli/Options; 在 xyz.plenglin.aurum.spark.RunOnSpark$.main(RunOnSpark.scala:46) 在 xyz.plenglin.aurum.spark.RunOnSpark.main(RunOnSpark.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
运行java -jar myjar.jar [arguments] 没有任何问题。查看 JAR 内部,我看到了 org.apache.commons.cli.Options 它应该在哪里。
【问题讨论】:
标签: scala apache-spark jar dependencies apache-commons-cli