由于org.kitesdk.data.DatasetOperationException,sqoop增量作业失败

问题描述 投票:0回答:1

我正在尝试使用sqoop增量作业将数据从oracle导入到hive表,使用镶木地板文件格式。但由于误差低,工作失败了

错误:org.kitesdk.data.DatasetOperationException:无法追加{“CLG_ID”:“5”,..... 19/03/27 00:37:06 INFO mapreduce.Job:任务ID:attempt_15088_130_m_000_2,状态:失败

查询以创建已保存的作业:

sqoop job -Dhadoop.security.credential.provider.path = jceks:// xxxxx --create job1 - import --connect“jdbc:oracle:thinxxxxxx”--verbose --username user1 --password-alias alisas - 查询“从CLG_TBL选择CLG_ID,....其中\ $ CONDITIONS”--as-parquetfile --incremental append --check-column CLG_TS --target -dir / hdfs / clg_data / -m 1

导入查询:

sqoop job -Dhadoop.security.credential.provider.path = jceks:/ xxxxx --exec job1 - --connect“jdbc:oracle:xxx”--username user1 --password-alias alisas --query“select CLG_ID, ....来自CLG_TBL,其中\ $ CONDITIONS“ - target-dir / hdfs / clg_data / -m 1 --hive-import --hive-database clg_db --hive-table clg_table --as-parquetfile

oracle sqoop parquet
1个回答
0
投票

此错误是一个已知问题。几个星期前我们遇到了同样的问题,并发现了这一点。

这是link

问题或行为的描述

在HDP 3中,托管Hive表必须是事务性的(hive.strict.managed.tables = true)。 Hive不支持使用Parquet格式的事务表。使用--as-parquetfile的Hive导入必须通过指定--external-table-dir来使用外部表。

相关的错误消息

由于以下原因,表db.table失败了严格的托管表检查:表被标记为托管表但不是事务性的。解决方法

当使用--hive-import with --as-parquetfile时,用户还必须为--external-table-dir提供表的完全限定位置:

sqoop import ... --hive-import --as-parquetfile --external-table-dir hdfs:/// path / to / table

© www.soinside.com 2019 - 2024. All rights reserved.