【问题标题】:what is the solution for spark cluster libs version is lower than my project's dependency in Gradlespark cluster libs 版本低于我的项目在 Gradle 中的依赖项的解决方案是什么
【发布时间】:2016-07-21 05:38:55
【问题描述】:

我的项目必须依赖使用更高版本 httpcore (4.3.2) 的依赖项,但在集群上,Spark 使用的是 4.2.5。在我使用 Gradle shadowJar 插件构建 fat jar 后,我发现 4.3.2 在 fat jar 中。但是当我用 spark-submit 运行 spark 程序时,总是加载 4.2.5。

那么处理这些用例的一般解决方案是什么:您的依赖项使用的是比 Spark 使用的更高版本的 jar。

【问题讨论】:

标签: apache-spark


【解决方案1】:

我能够通过创建一个带阴影的 JAR 来解决冲突。

Spark 执行器在纱线模式下运行时存在依赖性问题。

通过在我的 Gradle 项目中对我的依赖项进行如下处理来解决:

apply plugin: 'com.github.johnrengelman.shadow'

shadowJar {
    // shading these two packages as they clash with spark executor env
    relocate 'org.apache.http', 'com.org.shaded.http'
    zip64 = true
}

build {
    dependsOn shadowJar
}

参考:https://imperceptiblethoughts.com/shadow/configuration/relocation/

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2016-11-29
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    相关资源
    最近更新 更多