我有一个Spark程序,它需要几个依赖项。Spark程序中版本冲突的最佳解决方案
一个依赖项:a.jar是群集a_2.8.jar
上的2.8版本,但是,我需要使用它的版本2.9,a_2.9.jar
。
每次我启动程序时,spark会自动从集群加载a_2.8.jar,而不是加载a_2.9.jar
,即使我已经通过--jars a_2.9.jar
提交了这个jar。
我试着用spark.executor.userClassPathFirst
设置,但还有另外一个问题。在我的userClassPath中有一个“秘密”jar文件,比如说“b.jar
”,它不适用于集群,并且存在如此多的依赖关系,我不知道哪个jar不起作用。
综上所述:
如果我使用群集默认类路径,a.jar
会发生冲突。
如果我使用userClassPathFirst
,b.jar
会冲突。 (我不知道哪个b.jar)
我希望有人能告诉我,这里最好的解决方案是什么,以尽量减少工作。