sqoop 增量导入到配置单元 table

sqoop incremental import to hive table

我正在尝试对配置单元执行 sqoop 增量导入(lastmodified)table。它在 sqoop 1.4.5 中工作,但在 sqoop 1.4.6 中不工作。

它抛出以下错误

**日志上传时间:11 月 13 日星期一 17:57:58 +0530 2017

        Log Length: 246
      --incremental lastmodified option for hive imports is not supported. Please remove the parameter --incremental lastmodified.

拦截 System.exit(1) 失败的 Oozie 启动器,Main class [org.apache.oozie.action.hadoop.SqoopMain],退出代码 [1]**

Sqoop 1.4.6 不支持直接增量导入到配置单元table。

然而,您可以在不使用 --hive-import 选项的情况下导入增量数据,并使用 --target-dir 选项将增量数据放置在映射到配置单元 table 的 HDFS 位置。

例如

考虑有一个 table sqoop_pract 的位置设置为 /user/hive/warehouse/sqoop_pract

如果你想为此执行增量导入table你可以使用类似于下面的查询

sqoop import --connect jdbc:mysql://hostname/sample_db --username demo --table sqoop_pract --target-dir /user/hive/warehouse/sqoop_pract --incremental lastmodified --check-column Ts --last-value '2017-11-08 03:51:42' --append -P

上面命令中--target-dir指向hivetable的位置,这样就可以使用sqoop实现增量导入到hivetable。

Sqoop(版本 1.4.6 或以下)导入能够 运行 与 --hive-import--incremental lastmodified 选项,但它会产生意外的结果。 参见 https://issues.apache.org/jira/browse/SQOOP-2986

您可以选择 hcatalog 而不是 hive。