gpt4 book ai didi

java - Spark 和 Elastic 导致 jackson 重叠

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:10:23 25 4
gpt4 key购买 nike

我们最近在我们的应用程序中将 spark 升级到 2.2.0,这在运行时引入了 Jackson 2.6.5 jar。

但我们有其他服务需要 Jackson 2.8.6(由于 Elastic 5.5.0)该服务有一个 list ,它从应用程序的 lib 文件夹中引用 Jackson 2.8.6。

因此在运行时加载了两个版本的 Jackson jars,spark 选择了一个错误的版本(来自 lib 文件夹的 2.8.6 而不是来自其自己的 jars 文件夹的 2.6.5)

在 Windows 上,尽管两个版本仍在运行时加载,但选择的版本是正确的。

但它在 Linux 上失败了。

我们如何解决这个问题?

最佳答案

您可以将 jar 添加到类路径 programatically using addjar ,在文件 spark-defaults.conf 内或带有 spark-submit 标志。

另外,我们有 2 个属性来自 runtime-environment docs这里是为了缓和冲突

spark.driver.userClassPathFirst

default false (Experimental) Whether to give user-added jars precedence over Spark's own jars when loading classes in the driver. This feature can be used to mitigate conflicts between Spark's dependencies and user dependencies. Note : It is currently an experimental feature. This is used in cluster mode only.

spark.executor.userClassPathFirst

default false (Experimental) Same functionality as spark.driver.userClassPathFirst, but applied to executor instances.

直接在 SparkConf 上设置的属性具有最高优先级,然后是传递给 spark-submitspark-shell 的标志,然后是spark-defaults.conf 文件

关于java - Spark 和 Elastic 导致 jackson 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46364712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com