我尝试在azuredatabricks中使用apachespark/ignite集成。我安装org.apache。ignite:ignite-spark-2.4:2.9.0使用databricks ui的maven库。我在访问ignite cahces时出错:
: java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.clearCache()V
at org.springframework.context.support.AbstractApplicationContext.resetCommonCaches(AbstractApplicationContext.java:907)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:567)
在这里 AbstractApplicationContext
编译时使用 ReflectionUtils
不同的Spring版本。
我看到spring-core-4.3.26.release.jar在org.apache运行期间安装在/dbfs/filestore/jars/maven/org/springframework中。ignite:ignite-spark-2.4:2.9.0安装,并且/dbfs/filestore/jars下没有其他spring版本jar
但databricks似乎在内部使用spring-core_uuu4.1.4。
%sh
ls /databricks/jars | grep spring
印刷品:
spark--maven-trees--spark_2.4--com.clearspring.analytics--stream--com.clearspring.analytics__stream__2.7.0.jar
spark--maven-trees--spark_2.4--org.springframework--spring-core--org.springframework__spring-core__4.1.4.RELEASE.jar
spark--maven-trees--spark_2.4--org.springframework--spring-test--org.springframework__spring-test__4.1.4.RELEASE.jar
我不是java程序员,所以我没有解决这种冲突的经验。
有没有可能以某种方式调整databricks类路径或以其他方式解决这个问题?
调整类路径可能很容易,但我不知道如何调整。我只是在databricks文档中看到一句话,可以在init脚本中更改类路径。我可以创建一个init脚本,以前也做过,但是我应该在里面做什么呢?
我尝试过不同的databricks运行时版本,目前我尝试使用6.6版本。我认为ApacheIgnite没有与Spark3集成。
1条答案
按热度按时间mw3dktmi1#
跟随链接https://kb.databricks.com/libraries/replace-default-jar-new-jar.html 我创建的初始化脚本如下:
之后,我在集群上注册了这个init脚本,ignite集成为我工作(org.apache)。ignite:ignite-spark-2.4:2.9.0,ignite 2.9.0,azure databricks 6.6)
在/databricks/jars下预安装了大约500个jar文件,我可能已经破坏了一些依赖关系,但是没有注意到任务的一些副作用。