我正在尝试使用木地板文件格式使用sqoop增量作业将数据从oracle导入到hive表中。但是由于以下错误,作业失败了
错误:org.kitesdk.data.DatasetOperationException:无法追加 {“ CLG_ID”:“ 5”,..... 19/03/27 00:37:06 INFO mapreduce.Job:任务ID: try_15088_130_m_000_2,状态:失败
查询以创建保存的作业:
sqoop作业-Dhadoop.security.credential.provider.path = jceks:// xxxxx --create job1-导入--connect“ jdbc:oracle:thinxxxxxx” --verbose --username user1 --password-alias alisas --query“选择CLG_ID,....从CLG_TBL其中\ $ CONDITIONS”- as-parquetfile-增量 附加--check-column CLG_TS --target-dir / hdfs / clg_data / -m 1
导入查询:
sqoop作业-Dhadoop.security.credential.provider.path = jceks:/ xxxxx --exec作业1--连接“ jdbc:oracle:xxx” --username user1 --password-alias别名--query“从CLG_TBL那里选择CLG_ID,....,其中\ $ CONDITIONS” --target-dir / hdfs / clg_data / -m 1 --hive-import --hive-database clg_db --hive-table clg_table --as-parquetfile
答案 0 :(得分:0)
此错误是一个已知问题。几个星期前,我们面临着同样的问题, 找到了。
这里是link。
问题或行为的描述
在HDP 3中,托管Hive表必须是事务性的(hive.strict.managed.tables = true)。 Hive不支持Parquet格式的事务表。带有--as-parquetfile的配置单元导入必须通过指定--external-table-dir来使用外部表。
相关的错误消息
表db.table未能通过严格的托管表检查,原因是 原因如下:表被标记为托管表,但不是 交易的。 解决方法
在将-配置单元导入与-as-parquetfile 一起使用时,用户还必须提供-external-table-dir 表格的完全限定位置:
sqoop导入... --hive-import --as-parquetfile --external-table-dir hdfs:/// path / to / table