【发布时间】:2017-03-08 05:14:27
【问题描述】:
我创建了一个使用 jackson 2.7.5 的 uber-jar。我正在使用 spark 1.6.2(因为我在 scala-2.10 上)。但是,每当我尝试提交我的 spark 作业时,我都会收到有关在更高版本的杰克逊版本中的功能开关上找不到方法的错误。
我会假设一个 uber-jar 将允许我捆绑我自己的依赖项,即使它们与使用某种委托类加载器来隔离冲突需要运行的 spark 冲突。不是这样吗?如果不是,我该如何解决这个问题?
我知道有这个答案java.lang.NoSuchMethodError Jackson databind and Spark 基本上建议使用 sparks jackson 而不是你自己的,但是 spark 的 jackson 现在已经很老了,我有依赖于新 jackson 功能的代码
【问题讨论】:
-
我的 jars 会优先于 sparks 类路径吗? 8个;不是那么这不会有所作为吗?它显然是从自己的类路径中获取杰克逊,而不是先让我加载自己的版本
-
我正面临一个类似的问题,即通过作业和作业服务器引用了多个 netty 版本。你能解决这个问题吗?
-
我最终提取了 spark 源代码并更新了它们的依赖关系并创建了自定义构建
标签: json scala apache-spark jackson