oozie sqoop 操作导入失败

Posted

技术标签:

【中文标题】oozie sqoop 操作导入失败【英文标题】:oozie sqoop action fails to import 【发布时间】:2016-12-04 18:55:18 【问题描述】:

我在执行 oozie sqoop 操作时遇到问题。在日志中,我可以看到 sqoop 能够将数据导入临时目录,然后 sqoop 创建配置单元脚本来导入数据。

将数据导入 hive 时失败。

下面是我正在使用的一个 sqoop 动作。

<action name="import" retry-max="2" retry-interval="5">
    <sqoop xmlns="uri:oozie:sqoop-action:0.2">
      <job-tracker>$jobTracker</job-tracker>
      <name-node>$nameNode</name-node>
      <configuration>
        <property>
          <name>mapred.job.queue.name</name>
          <value>$jobQueue</value>
        </property>
      </configuration>
      <arg>import</arg>
      <arg>-D</arg>
      <arg>sqoop.mapred.auto.progress.max=300000</arg>
      <arg>-D</arg>
      <arg>map.retry.exponentialBackOff=TRUE</arg>
      <arg>-D</arg>
      <arg>map.retry.numRetries=3</arg>
      <arg>--options-file</arg>
      <arg>$odsparamFileName</arg>
      <arg>--table</arg>
      <arg>$odsTableName</arg>
      <arg>--where</arg>
      <arg>$ods_data_pull_column BETWEEN TO_DATE($wf:actionData('getDates')['prevMonthBegin'],'YYYY-MM-DD hh24:mi:ss') AND TO_DATE($wf:actionData('prevMonthEnd')['endDate'],'YYYY-MM-DD hh24:mi:ss')</arg>
      <arg>--hive-import</arg>
      <arg>--hive-overwrite</arg>
      <arg>--hive-table</arg>
      <arg>$stgTable</arg>
      <arg>--hive-drop-import-delims</arg>
      <arg>--warehouse-dir</arg>
      <arg>$sqoopStgDir</arg>
      <arg>--delete-target-dir</arg>
      <arg>--null-string</arg>
      <arg>\\N</arg>
      <arg>--null-non-string</arg>
      <arg>\\N</arg>
      <arg>--compress</arg>
      <arg>--compression-codec</arg>
      <arg>gzip</arg>
      <arg>--num-mappers</arg>
      <arg>1</arg>
      <arg>--verbose</arg>
      <file>$odsSqoopConnectionParamsFileLocation</file>
    </sqoop>
    <ok to="rev"/>
    <error to="fail"/>
  </action>

以下是我在 mapred 日志中遇到的错误

20078 [main] DEBUG org.apache.sqoop.mapreduce.db.DataDrivenDBInputFormat  - Creating input split with lower bound '1=1' and upper bound '1=1'
Heart beat
Heart beat
Heart beat
Heart beat
151160 [main] INFO  org.apache.sqoop.mapreduce.ImportJobBase  - Transferred 0 bytes in 135.345 seconds (0 bytes/sec)
151164 [main] INFO  org.apache.sqoop.mapreduce.ImportJobBase  - Retrieved 0 records.
151164 [main] ERROR org.apache.sqoop.tool.ImportTool  - Error during import: Import job failed!
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

请推荐

【问题讨论】:

【参考方案1】:

您可以使用 --target-dir 将表导入 hdfs 路径,并将配置单元表的位置设置为指向该路径。我使用这种方法修复了它。希望对你也有帮助。

【讨论】:

以上是关于oozie sqoop 操作导入失败的主要内容,如果未能解决你的问题,请参考以下文章

在hue 使用oozie sqoop 从mysql 导入hive 失败

通过 oozie 从 sqoop 作业增量导入不会更新 sqoop 元存储中的 incremental.last.value

sqoop从hive导入数据到mysql时出现主键冲突

利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

CDH中oozie 定时调度sqoop job

Oozie Sqoop 工作