oracle 11g的sqoop导入作业失败,出现错误
错误sqoop.sqoop:运行sqoop时出现异常:org.kitesdk.data.validationexception:数据集名称81fdfb8245ab4898a719d4dda39e23f9\u c46010.histcontact不是字母数字(加上“\”)
以下是完整的命令:
$ sqoop job --create ingest_amsp_histcontact -- import --connect "jdbc:oracle:thin:@<IP>:<PORT>/<SID>" --username "c46010" -P --table C46010.HISTCONTACT --check-column ITEM_SEQ --target-dir /tmp/junk/amsp.histcontact -as-parquetfile -m 1 --incremental append
$ sqoop job --exec ingest_amsp_histcontact
这是一个用Parquet格式的增量导入。令人惊讶的是,如果我使用另一种格式,比如--as textfile,它的效果会非常好。
这与sqoop作业失败时出现的类似问题,oracle导入的kitesdk验证错误
但我用过ojdbc6,换成ojdbc7就不行了。
sqoop版本:1.4.7
oracle版本:11g
谢谢,尤萨塔
3条答案
按热度按时间djp7away1#
问题是--target dir选项中的“.”。解决方法:将目标目录更改为“/tmp/junk/amsp\u histcontact”。当sqoop作业完成时,将hdfs target dir重命名为“/tmp/junk/amsp.histcontact”
jchrr9hc2#
有一个解决方法,在--table参数中省略“.”字符对我有效,因此
--table <schema>.<table_name>
,我用--table <table_name>
. 但是,如果您从oracle中的另一个模式导入表,则这不起作用。0yg35tkg3#
我知道这是有点晚,但我面临着同样的问题,我解决了它省略Parquet文件选项。
尝试运行作业而不使用