0
我的主火花项目对其他utils的依赖jars.So集组合的可能是这样的:加载依赖瓶(不同的版本不同的动作/职位相同罐子)与Oozie的火花行动
1. main_spark-1.0.jar will work with utils_spark-1.0.jar (some jobs use this set)
2. main_spark-2.0.jar will work with utils_spark-2.0.jar (and some of the jobs use this set)
的计算策略这为我工作,以处理这种情况下是通过与火花选择瓶当
oozie spark action job1
<jar>main_spark-1.0.jar</jar>
<spark-opt>--jars utils_spark-1.0.jar</spark-opt>
oozie spark action job2
<jar>main_spark-2.0.jar</jar>
<spark-opt>--jars utils_spark-2.0.jar</spark-opt>
我测试了两种不同的动作此配置和它的作品
。 我的问题是
- 它是如何不同,然后加载罐子在应用程序lib路径(oozie)?
- 如果两个作业/动作在相同的纱线群上并行运行,那么是否存在类加载器问题(同一个jar的多个版本)?
在我的理解中,这两个应用程序将运行在他们的spark上下文中,所以它应该没问题,但任何专家的建议?
我建议将问题分解为两个,因为它会更容易回答。 –
AFAIK Oozie通过标准的YARN机制发布JAR,以便它们在默认的CLASSPATH中定义。鉴于Spark通过执行程序启动序列中的Driver的自定义下载来发送JAR;它们被添加到自定义的Spark类加载器中。这导致不同种类的CLASSPATH预先问题... –