为 Sqoop 导入禁用 Oraoop

Posted

技术标签:

【中文标题】为 Sqoop 导入禁用 Oraoop【英文标题】:Oraoop disabled for Sqoop import 【发布时间】:2015-07-23 14:14:36 【问题描述】:

我正在使用 Hortonworks HDP 沙盒,并且按照说明安装了 Oraoop,但每当我运行 Sqoop 导入时,我都会收到消息“oracle.OraOopManagerFactory:Oracle 和 Hadoop 的数据连接器已禁用。”。我不知道我还需要做什么才能把它捡起来。我已经验证 oraoop 驱动程序在我的 sqoop lib 目录中。导入确实有效,但它们只是使用 oracle 驱动程序,我想尝试一下使用 Oraoop 获得的一些功能。

这是我正在运行的命令:

sqoop-import --connect jdbc:oracle:thin:@<ip>:1521/sid --username myUser -P --query "select * from mytable where \$CONDITIONS" -split-by sequence_id -as-sequencefile --target-dir /user/hue/data/deactivatedsponsor

【问题讨论】:

【参考方案1】:

如果指定“--query”参数代替“--table”参数,则不使用 Oraoop 连接器。 以下在Sqoop Documentation中提到

适用于 Oracle 和 Hadoop 的数据连接器对具有以下属性的 Sqoop 作业负责:

Oracle相关

基于表 - 使用表参数且指定对象为表的作业。

以下命令应使用 Oraoop 连接器。我还包括了“--direct”选项,它向 Sqoop 表明应该使用 Oraoop。

sqoop-import --connect jdbc:oracle:thin:@<ip>:1521/sid --direct --username myUser -P --table mytable -split-by sequence_id -as-sequencefile --target-dir /user/hue/data/deactivatedsponsor --columns <columns list> --where <where condition if needed>

【讨论】:

【参考方案2】:

Oraoop 连接器无法处理--query 工具,当您使用--query 时,它会自动调用sqoop。 因此,不要使用--query,而是使用--table 进行导入。 希望这会有所帮助!

【讨论】:

以上是关于为 Sqoop 导入禁用 Oraoop的主要内容,如果未能解决你的问题,请参考以下文章

如何在导入过程中禁用Oracle约束条件和触发器

如何为 IntelliJ IDEA 项目禁用或启用 Gradle / Maven 自动导入?

为 Flutter 类禁用 VSCode IntelliSense

Python:禁用相对导入[重复]

如何禁用 TSLint 警告 - 深度导入

Python Logging - 禁用导入模块的日志记录