Oozie/Sqoop 包安装时不应该配置 jar 位置吗?

Shouldn't Oozie/Sqoop jar location be configured during package installation?

我在 CentOS 6.7 中使用 HDP 2.4。

我已经用 Ambari 创建了集群,所以 Oozie 是由 Ambari 安装和配置的。

我在 运行 Oozie/Sqoop 时收到两个与 jar 文件位置相关的错误。第一个涉及 postgresql-jdbc.jar,因为 Sqoop 作业是从 Postgres 增量导入的。我将 postgresql-jdbc.jar 文件添加到 HDFS 并在 workflow.xml:

中指向它
<file>/user/hdfs/sqoop/postgresql-jdbc.jar</file>

问题解决了。但是第二个错误似乎与 kite-data-mapreduce.jar 有关。然而,对这个文件做同样的事情:

<file>/user/hdfs/sqoop/kite-data-mapreduce.jar</file>

好像没有解决问题:

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], main() threw exception, org/kitesdk/data/DatasetNotFoundException java.lang.NoClassDefFoundError: org/kitesdk/data/DatasetNotFoundException

这似乎很奇怪,这不是由 Ambari 自动配置的,而且当我们开始出现错误时,我们必须将 jar 文件复制到 HDFS。

这是正确的方法还是我错过了一些配置步骤?

发生这种情况是因为类路径中缺少 jar。我建议您在 job.properties 文件中使用 属性 oozie.use.system.libpath=true。所有与 sqoop 相关的 jar 都会自动添加到类路径中。然后只添加你需要的自定义jar到workflow应用路径的lib目录下,所有sqoop相关的jar都会从/user/oozie/share/lib/lib_<timestamp>/sqoop/*.jar.

添加