gpt4 book ai didi

apache-spark - 忽略 Spark Cluster 自带的 Jars

转载 作者:行者123 更新时间:2023-12-05 06:40:38 25 4
gpt4 key购买 nike

我想使用我自己的应用程序 Spark jar 。更具体地说,我有一个尚未发布的 mllib jar ,其中包含 BisectingKMeans 的固定错误。所以,我的想法是在我的 spark 集群中使用它(在本地它工作得很好)。

我已经尝试了很多东西:extraclasspath、userClassPathFirst、jars 选项……很多选项都不起作用。我最后的想法是使用 sbt 的 Shade 规则将所有 org.apache.spark.* 包更改为 shadespark.* 但是当我部署它时它仍在使用集群的 Spark jar 。

有什么想法吗?

最佳答案

您可以尝试使用 Maven shade 插件来重新定位冲突的包。这会为较新版本的 mllib jar 创建一个单独的命名空间。因此,旧版本和新版本都将位于类路径中,但由于新版本有一个替代名称,您可以显式引用较新的包。

看看https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html :

If the uber JAR is reused as a dependency of some other project, directly including classes from the artifact's dependencies in the uber JAR can cause class loading conflicts due to duplicate classes on the class path. To address this issue, one can relocate the classes which get included in the shaded artifact in order to create a private copy of their bytecode:

我从视频“编写 Spark 应用程序时的 5 大错误”中得到了这个想法:https://youtu.be/WyfHUNnMutg?t=23m1s

关于apache-spark - 忽略 Spark Cluster 自带的 Jars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365013/

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