由于 org.kitesdk.data.DatasetOperationException,sqoop 增量作业失败
sqoop incremental job is failing due to org.kitesdk.data.DatasetOperationException
我正在尝试使用 parquet 文件格式使用 sqoop 增量作业将数据从 oracle 导入到 hive table。但作业因以下错误而失败
Error: org.kitesdk.data.DatasetOperationException: Failed to append
{"CLG_ID": "5",.....19/03/27 00:37:06 INFO mapreduce.Job: Task Id :
attempt_15088_130_m_000_2, Status : FAILED
创建已保存作业的查询:
sqoop job -Dhadoop.security.credential.provider.path=jceks://xxxxx
--create job1 -- import --connect "jdbc:oracle:thinxxxxxx" --verbose --username user1 --password-alias alisas --query "select CLG_ID,.... from CLG_TBL where $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,.... from CLG_TBL where $CONDITIONS" --target-dir /hdfs/clg_data/ -m 1
--hive-import --hive-database clg_db --hive-table clg_table --as-parquetfile
此错误是一个已知问题。几周前我们遇到了同样的问题并且
找到了这个。
这里是 link.
问题或行为的描述
在 HDP 3 中,托管 Hive tables 必须是事务性的 (hive.strict.managed.tables=true)。 Hive 不支持 Parquet 格式的事务性 table。使用 --as-parquetfile 的 Hive 导入必须通过指定 --external-table-dir.
使用外部 tables
相关错误信息
Table db.table 由于
以下原因:Table 被标记为托管 table 但不是
事务性的。
解决方法
当使用 --hive-import 和 --as-parquetfile 时,用户还必须提供 -- external-table-dir 具有 table:
的完全限定位置
sqoop 导入 ... --hive 导入
--as-parquetfile
--external-table-dir hdfs:///path/to/table
我正在尝试使用 parquet 文件格式使用 sqoop 增量作业将数据从 oracle 导入到 hive table。但作业因以下错误而失败
Error: org.kitesdk.data.DatasetOperationException: Failed to append {"CLG_ID": "5",.....19/03/27 00:37:06 INFO mapreduce.Job: Task Id : attempt_15088_130_m_000_2, Status : FAILED
创建已保存作业的查询:
sqoop job -Dhadoop.security.credential.provider.path=jceks://xxxxx --create job1 -- import --connect "jdbc:oracle:thinxxxxxx" --verbose --username user1 --password-alias alisas --query "select CLG_ID,.... from CLG_TBL where $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,.... from CLG_TBL where $CONDITIONS" --target-dir /hdfs/clg_data/ -m 1 --hive-import --hive-database clg_db --hive-table clg_table --as-parquetfile
此错误是一个已知问题。几周前我们遇到了同样的问题并且 找到了这个。
这里是 link.
问题或行为的描述
在 HDP 3 中,托管 Hive tables 必须是事务性的 (hive.strict.managed.tables=true)。 Hive 不支持 Parquet 格式的事务性 table。使用 --as-parquetfile 的 Hive 导入必须通过指定 --external-table-dir.
使用外部 tables相关错误信息
Table db.table 由于 以下原因:Table 被标记为托管 table 但不是 事务性的。 解决方法
当使用 --hive-import 和 --as-parquetfile 时,用户还必须提供 -- external-table-dir 具有 table:
的完全限定位置sqoop 导入 ... --hive 导入 --as-parquetfile --external-table-dir hdfs:///path/to/table