【发布时间】:2018-11-25 18:35:00
【问题描述】:
我有一个使用纱线调度程序运行的 oozie 作业。
我的 oozie 作业中的两个操作是 spark 作业,然后是 java 作业。
我的 spark 程序集 jar 中有 jackson 2.6 版,我的 java 程序集 jar 中有 jackson 2.9。现在我的火花因异常而失败了
> java.lang.Exception: Incompatible Jackson version: 2.9.3
> at com.sps.analytics.batch.bi.BatchApp.executeQueries(BatchApp.scala:73)
> at com.sps.analytics.batch.bi.BatchApp$.main(BatchApp.scala:32)
如何强制我的 spark 应用程序 jar 使用 2.6 版本
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.5" force()
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-annotations" % "2.6.5" force()
// https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-scala
dependencyOverrides += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.6.5" force()
// https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml
libraryDependencies += "com.fasterxml.jackson.dataformat" % "jackson-dataformat-yaml" % "2.6.5" force()
这就是我的 spark build.sbt 中的内容
【问题讨论】:
-
您的 Oozie Spark 作业和 Java 作业应该是独立的。可能是 YARN 加载了 Jackson 库 2.9(检查 YARN 日志)导致此冲突。如果是这种情况,尝试使用参数
oozie.launcher.mapreduce.user.classpath.first(community.hortonworks.com/questions/6610/…) -
似乎不起作用:(
-
Oozie 作业作为单独的作业可以正常工作,但是当我创建一个包含两个任务的作业时,它似乎不起作用。我遇到冲突,我的 spark 应用程序抱怨它有更高版本的 jackson,它在另一个 jar 中使用。我的两个罐子之间是组装罐子。
-
如何从工作流中的操作中排除 lib 中的 jars
标签: apache-spark hadoop hadoop-yarn oozie amazon-emr