【发布时间】:2016-05-18 01:00:33
【问题描述】:
我正在开发一个 spark 应用程序。我正在使用第三方 jar。我将它添加到我的 sbt 文件中。编译成功
> libraryDependencies += "org.springframework.security" %
> "spring-security-web" % "3.0.7.RELEASE
但是当我提交火花作业时
spark-submit --master yarn-client --class MyClass target/scala-2.10/my-app.jar
失败并出现以下错误:
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to
stage failure: Task 0 in stage 48.0 failed 1 times, most recent failure: Lost task 0.0 in stage 48.0 (TID 3216, localhost):
`java.lang.NoClassDefFoundError:` org/springframework/security/web/util/IpAddressMatcher
我也尝试在 spark-submit jar 中显式传递 jar
spark-submit --master yarn-client --jars third-party-jars/spring-security-web-3.0.7.RELEASE.jar --class MyClass target/scala-2.10/my-app.jar
然后它失败并出现以下错误:
java.lang.NoClassDefFoundError: org/springframework/util/StringUtils
at org.springframework.security.web.util.IpAddressMatcher.<init>(IpAddressMatcher.java:33)
它类似的错误,但在另一个类。
关于如何解决这个问题的任何建议?
谢谢
【问题讨论】:
-
尝试使用来自 sbt 的程序集插件制作一个“uberjar”
-
正如@rhernando 提到的,尝试按照此说明构建一个胖罐 - stackoverflow.com/questions/28459333/…。然后应该将所有依赖项放在一个 jar 中。
标签: apache-spark noclassdeffounderror spark-streaming