由于org.kitesdk.data.DatasetOperationException而导致sqoop增量作业失败

时间:2019-03-27 06:16:46

标签: oracle sqoop parquet

我正在尝试使用木地板文件格式使用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

1 个答案:

答案 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