【发布时间】:2015-02-28 17:06:21
【问题描述】:
我有一个 sqoop 操作,它从 postgres 数据库中提取数据,然后导入到 hive 表中。当我执行 oozie 工作流时,scoop 将数据从 postgres 拉入 HDFS。但它无法将数据导入配置单元表。日志没有任何用处,因为我只是从 oozie Web 控制台 UI 获得主类 [org.apache.oozie.action.hadoop.SqoopMain],退出代码 [1]。我们真的可以在 sqoop 操作中进行配置单元导入吗?还是在 sqoop 导入 HDFS 后我必须单独执行 Hive 操作?
<action name="ads-sqoop-import">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>dbIP</name>
<value>${dbIP}</value>
</property>
<property>
<name>dbPort</name>
<value>${dbPort}</value>
</property>
<property>
<name>dbUserName</name>
<value>${dbUserName}</value>
</property>
<property>
<name>dbPassword</name>
<value>${dbPassword}</value>
</property>
<property>
<name>hive_db_name</name>
<value>${hive_db_name}</value>
</property>
<property>
<name>scoop_target_dir</name>
<value>${scoop_target_dir}</value>
</property>
<property>
<name>dbName</name>
<value>${dbName}</value>
</property>
</configuration>
<command>import --connect jdbc:postgresql://${dbIP}:${dbPort}/${dbName} --username ${dbUserName} --password "${dbPassword}" --table ads --hive-table ${hive_db_name}.ads --create-hive-table --hive-import -m 1 --target-dir ${scoop_target_dir}/ads
</command>
</sqoop>
<ok to="orders-sqoop-import"/>
<error to="kill"/>
</action>
【问题讨论】:
-
如果您在作业跟踪器(或纱线)中找到 sqoop 的 oozie:launcher 作业,您应该能够找到该作业的 strout。你会知道这是正确的工作,因为它会说它是成功的,即使它失败了(这是一个 oozie 机制)。
-
嗨 Anand 我面临类似的问题,但我已经添加了 hive-site xml 我的纱线日志显示 sqoop.hive.HiveImport - 原因:java.io.FileNotFoundException:文件不存在:hdfs :/user/yarn 如果你能提出一些建议
-
@chhayavishwakarma 你能发一些日志吗?