首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花-提交依赖冲突

火花-提交依赖冲突
EN

Stack Overflow用户
提问于 2018-08-16 19:07:09
回答 4查看 947关注 0票数 3

我试图提交一个jar来激发,但是我的jar包含了与spark内置的jar (snakeyml和其他的)冲突的依赖项。

是否有一种方法可以告诉spark,比/jar 中的/jar更喜欢我的项目的依赖项?

当我运行submit时,会得到以下例外:

代码语言:javascript
复制
Caused by: java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
at org.hibernate.validator.internal.xml.ValidationBootstrapParameters.<init>(ValidationBootstrapParameters.java:63)
at org.hibernate.validator.internal.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:540)
at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:337)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:501)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:132)
... 41 more

这是由于星星之火有一个旧版本的验证-api (validation-api-1.1.0.Final.jar),我的项目依赖于更新的版本,并且它确实与我的jar (javax.validation:validation-api:jar:2.0.1.Final:compile)捆绑在一起。

我使用以下命令提交:

代码语言:javascript
复制
/spark/bin/spark-submit --conf spark.executor.userClassPathFirst=true --conf spark.driver.userClassPathFirst=true

但我还是得到了同样的例外

EN

回答 4

Stack Overflow用户

发布于 2018-08-16 19:24:05

如果使用SBT构建jar,则需要排除集群中的那些类。例如,如下所示:

代码语言:javascript
复制
"org.apache.spark" %% "spark-core" % "2.2.0" % "provided"

您这样做是通过添加“提供”,这意味着这些类已经在您运行它的环境中提供了。

票数 0
EN

Stack Overflow用户

发布于 2018-08-17 08:02:53

不确定是否使用SBT,但我通过程序集在build.sbt中使用了这一点,因为在某一阶段还存在一些依赖冲突。看下面,也许这会有帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-05-31 00:26:13

这是通过将以下内容设置为true来控制的:

代码语言:javascript
复制
spark.driver.userClassPathFirst
spark.executor.userClassPathFirst
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51883862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档