【问题标题】:How to run slim jar in scalding / hadoop job without writing the full classpath in libjars如何在 scalding / hadoop 作业中运行 slim jar 而无需在 libjars 中编写完整的类路径
【发布时间】:2014-09-13 10:24:37
【问题描述】:

有没有一种方法可以运行需要类路径的烫伤作业,而无需使用 libjar 并明确编写每个 jar 以逗号分隔。

我想把我所有的 jar 放在一个 lib 中,而不是只写 -libjars=./lib/* 而不是所有的 jar。

有没有经典的方法??

使用烫伤版 烫金核心_2.10 0.8.5

hadoop 版本 2.0.0-cdh4.5.0

附言 我正在使用 maven 来打包 jar 和 lib

【问题讨论】:

标签: java hadoop jar maven-3 scalding


【解决方案1】:

您应该创建一个“fat jar”,其中包含您将使用 libjars 添加的依赖项以及主类。 一个 jar 中具有 Scalding 和依赖项的 sbt 项目的具体示例,可以查看here。在 Maven 中,您应该使用 mvn assembly:first 添加“程序集插件”和包(如果我记得的话)。预计上述两种方法都不会容易,因为如果您要使用 cloudera jars 中已经存在的其他 jars(例如,具有不同版本),您将有依赖地狱。 I wrote 几年前类似的东西,你可以试试,虽然它可能已经过时了。

【讨论】:

  • 谢谢 Amit,我对 fat jar 很熟悉,但我想使用一个 slim jar,因为我们使用 git 来部署 jar,部署多个 jar 比部署一个 fat jar 更容易(假设大多数罐子都没有改变)。据我所知,没有经典的方法可以做到这一点。
猜你喜欢
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 2011-06-10
  • 1970-01-01
相关资源
最近更新 更多