java.lang.NoSuchMethod在齐柏林飞艇中加载外部 FAT-JAR 时出错


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

  • JAR建立在EMR本身(而不是从其他环境上传(,因此库/Spark/Scala等中的版本冲突不太可能


我的EMR环境:

  • 版本标签: EMR-5.11.0
  • Hadoop发行版:亚马逊2.7.3
  • 应用: 火花 2.2.1, 齐柏林飞艇 0.7.3,
  • 神经节 3.7.2, 蜂巢 2.3.2, 李维 0.4.0, Sqoop 1.4.6, Presto 0.187

项目配置:

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

事实证明,真正的罪魁祸首是那些jars中的共享submodules

由包含共同submodules的项目建造的两个fat jars导致了这场冲突。删除其中一个jars解决了问题。


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

最新更新