sqoop增量导入到hive表

时间:2017-11-13 12:54:45

标签: hive sqoop oozie

我正在尝试对hive表执行sqoop增量导入(lastmodified)。它在sqoop 1.4.5中工作,但在sqoop 1.4.6中不工作。

抛出以下错误

**日志上传时间:Mon Nov 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 Launcher,Main class [org.apache.oozie.action.hadoop.SqoopMain],退出代码[1] **

3 个答案:

答案 0 :(得分:3)

Sqoop 1.4.6不支持直接对hive表进行增量导入。

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

例如

考虑位置设置为sqoop_pract的表/user/hive/warehouse/sqoop_pract

如果要对此表执行增量导入,可以使用类似于以下

的查询
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指向hive表的位置,这样就可以使用sqoop实现对hive表的增量导入。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你可以选择hcatalog而不是hive。