0
  • 在尝试运行一段使用一些FAT JARs(共享一些共同点submodules)构建的代码时,sbt assembly我遇到了这个讨厌的问题java.lang.NoSuchMethodError

  • JAR是基于EMR自身构建的(而不是从其他环境上传的),因此库//等中的版本冲突不太可能SparkScala


我的EMR环境:

  • 发布标签:emr-5.11.0
  • Hadoop 发行版:亚马逊 2.7.3
  • 应用程序:Spark 2.2.1、Zeppelin 0.7.3、Ganglia 3.7.2、Hive 2.3.2、Livy 0.4.0、Sqoop 1.4.6、Presto 0.187

项目配置:

  • 斯卡拉 2.11.11
  • 火花 2.2.1
  • SBT 1.0.3
4

1 回答 1

0

原来,真正的罪魁祸首是submodules那些共享的jars

两个fat jars包含 common 的项目submodules导致了这种冲突。删除其中一个jars解决了该问题。


我不确定这种冲突是否仅在某些特定情况下发生,或者总是在上传此类jars(具有相同submodules的)时发生Zeppelin interpreter,因此仍在等待适当的解释。

于 2018-01-18T13:57:37.750 回答