如何部署程序集jar并将其用作提供的依赖项?

时间:2017-11-30 01:19:12

标签: maven apache-spark yarn

使用火花over hbase和hadoop使用Yarn, 服务器端提供了其他库中的汇编库。 (称为spark-looongVersion-haddop-looongVersion.jar) 它包括许多图书馆。

当火花罐作为作业发送到服务器执行时,作业中包含的库与服务器库(程序集jar和可能的其他库)之间可能会发生冲突。

我需要将这个装配罐包含为"提供" maven依赖以避免客户端依赖项和服务器类路径之间的冲突 如何部署和使用此程序集jar作为提供的依赖项?

2 个答案:

答案 0 :(得分:0)

  

如何部署和使用此程序集jar作为提供的依赖项?

程序集jar是一个常规的jar文件,因此任何其他jar文件都可以是库依赖项,如果它可以在工件仓库中使用,例如从中下载它。 Nexus,Artifactory或类似。

最快捷的方法是在Maven本地存储库中“安装”它(请参阅Maven的Guide to installing 3rd party JARs)。然而,这会将您与当地可用的内容联系起来,因此很快就会与其他团队正在使用的内容不同步。

推荐的方法是使用Apache Maven Deploy Plugin部署依赖项。

一旦部署,将其声明为依赖项与声明其他依赖项没有什么不同。

答案 1 :(得分:0)

提供了依赖关系范围

必须从汇编的JAR中排除Spark依赖项。如果没有,您应该在应用程序启动期间从Java类加载器中获得奇怪的错误。没有Spark依赖性的组装的其他好处是更快的部署。请记住,必须通过网络将应用程序组件复制到所有群集节点都可访问的位置(例如:HDFS或S3)。