【发布时间】:2014-07-26 06:00:09
【问题描述】:
我在执行 oozie sqoop 操作时遇到问题。 在日志中,我可以看到 sqoop 能够将数据导入临时目录,然后 sqoop 创建配置单元脚本来导入数据。
将临时数据导入 hive 时失败。
在日志中我没有收到任何异常。
下面是我正在使用的一个 sqoop 动作。
<workflow-app name="testSqoopLoadWorkflow" xmlns="uri:oozie:workflow:0.4">
<credentials>
<credential name='hive_credentials' type='hcat'>
<property>
<name>hcat.metastore.uri</name>
<value>${HIVE_THRIFT_URL}</value>
</property>
<property>
<name>hcat.metastore.principal</name>
<value>${KERBEROS_PRINCIPAL}</value>
</property>
</credential>
</credentials>
<start to="loadSqoopDataAction"/>
<action name="loadSqoopDataAction" cred="hive_credentials">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>/tmp/hive-oozie-site.xml</job-xml>
<configuration>
<property>
<name>oozie.hive.defaults</name>
<value>/tmp/hive-oozie-site.xml</value>
</property>
</configuration>
<command>job --meta-connect ${SQOOP_METASTORE_URL} --exec TEST_SQOOP_LOAD_JOB</command>
</sqoop>
<ok to="end"/>
<error to="kill"/>
</action>
下面是我用来导入数据的一个 sqoop Job。
sqoop job --meta-connect ${SQOOP_METASTORE_URL} --create TEST_SQOOP_LOAD_JOB -- import --connect '${JDBC_URL}' --table testTable -m 1 --append --check-column pkId --incremental append --hive-import --hive-table testHiveTable;
在 mapred 日志中,我收到以下异常。
72285 [main] INFO org.apache.sqoop.hive.HiveImport - Loading uploaded data into Hive
Intercepting System.exit(1)
<<< Invocation of Main class completed <<<
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]
Oozie Launcher failed, finishing Hadoop job gracefully
Oozie Launcher ends
请提出建议。
【问题讨论】:
-
在 /user/hive/warehouse 中缺少写访问权限?
-
给出的namenode是什么?你能验证你的 namenode 吗?确保你提到了 hdfs://
-
将您的配置单元表指向您将数据加载到 hdfs 的位置就可以了!!!
标签: hadoop hive bigdata sqoop oozie