【问题标题】:Sqoop import job error org.kitesdk.data.ValidationException for OracleSqoop 导入作业错误 org.kitesdk.data.ValidationException for Oracle
【发布时间】:2018-04-15 12:26:30
【问题描述】:

Oracle 11g 的 Sqoop 导入作业失败并出现错误

错误 sqoop.Sqoop:运行 Sqoop 时出现异常: org.kitesdk.data.ValidationException:数据集名称 81fdfb8245ab4898a719d4dda39e23f9_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

这是一种采用镶木地板格式的增量导入。令人惊讶的是,如果我使用另一种格式,比如 --as-textfile,它会很好地工作。

这与Sqoop job fails with KiteSDK validation error for Oracle import 类似的问题

但是我用过 ojdbc6 换到 ojdbc7 就不行了。

Sqoop 版本:1.4.7

Oracle 版本:11g

谢谢, 汤太

【问题讨论】:

    标签: oracle hadoop ojdbc sqoop


    【解决方案1】:

    我知道有点晚了,但我遇到了同样的问题,我通过省略 parquet 文件选项解决了这个问题。

    尝试在没有

    的情况下运行作业
    -as-parquetfile
    

    【讨论】:

      【解决方案2】:

      有一个解决方法,省略“。” --table 参数中的字符对我有用,所以我使用--table &lt;table_name&gt; 而不是--table &lt;schema&gt;.&lt;table_name&gt;。但是,如果您从 Oracle 中的另一个模式导入表,这将不起作用。

      【讨论】:

        【解决方案3】:

        问题是“。”在 --target-dir 选项中。此处的解决方法:将目标目录更改为“/tmp/junk/amsp_histcontact”。当 sqoop 作业完成后,将 hdfs 目标目录重命名为“/tmp/junk/amsp.histcontact”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-06
          • 2016-09-04
          • 1970-01-01
          • 1970-01-01
          • 2018-09-26
          • 2020-09-27
          相关资源
          最近更新 更多