我正在尝试对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] **
答案 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。