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
.
添加
我在 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
.