为 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的主要内容,如果未能解决你的问题,请参考以下文章
如何为 IntelliJ IDEA 项目禁用或启用 Gradle / Maven 自动导入?