通过 Hortonworks Sandbox 上的 sqoop 连接到 Oracle

Posted

技术标签:

【中文标题】通过 Hortonworks Sandbox 上的 sqoop 连接到 Oracle【英文标题】:Connect to Oracle via sqoop on Hortonworks Sandbox 【发布时间】:2015-06-16 04:36:03 【问题描述】:

我目前正在使用 Hortonworks Sandbox(在他们的网站上下载),我想运行 sqoop 以连接到我的 Oracle 数据库并检索信息。

我已经完成的步骤:

安装 sqoop -> 确定 Ping 我的数据库服务器 -> 好的 下载Oracle驱动ojdbc6.jar -> OK 将Oracle驱动ojdbc6.jar放入/usr/lib/sqoop/lib -> OK 运行sqoop import --connect "jdbc:oracle:thin:readonly/readonly@//unixatd:1521:P1AX" --table DUAL -> 好的

我收到以下消息:

15/06/16 04:25:01 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5.2.2.4.2-2
15/06/16 04:25:01 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
15/06/16 04:25:01 INFO manager.SqlManager: Using default fetchSize of 1000
15/06/16 04:25:01 INFO tool.CodeGenTool: Beginning code generation
15/06/16 04:25:01 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.driver.oracledriver
java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.driver.oracledriver
        at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:848)
        at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:736)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:759)
        at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:269)
        at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:240)
        at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:226)
        at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295)
        at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1773)
        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1578)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:96)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:601)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

从那里开始,我只是不知道下一步该做什么。 如果你能给我一些我可以检查的信息,那就太好了。

【问题讨论】:

【参考方案1】:

请检查 oracle 驱动程序是否可用:SQOOP_HOME/lib

您的答案可以在这里找到:

https://hortonworks.com/community/forums/topic/unable-to-sqoop-data-from-hdfs-to-oracle/

https://mail-archives.apache.org/mod_mbox/sqoop-user/201306.mbox/%3CCANhcbvMsjxqeUefuZUe0s-Z=J2Eo9pp2wo-mRXjfBQk60+asoQ@mail.gmail.com%3E

【讨论】:

SQOOP_HOME/lib 与 /usr/lib/sqoop/lib 不同? 应该没有什么不同。但是环境变量应该设置正确。 SQOOP_HOME is by default set to /usr/lib/sqoop/ 在 hortonworks。请检查一次。 Jar 应该有适当的权限。请参阅链接以获取更多详细信息。 docs.hortonworks.com/HDPDocuments/HDP1/HDP-1.3.1/…

以上是关于通过 Hortonworks Sandbox 上的 sqoop 连接到 Oracle的主要内容,如果未能解决你的问题,请参考以下文章

在 Hortonworks Sandbox 内的 Pig 脚本中加载 JSON 文件

Hortonworks 沙箱 - 无法启动,因为 ambari-qa-Sandbox@DOMAIN.COM 应该是 ambari-qa-sandbox@DOMAIN.COM

无法将数据加载到 Pig 中的 Hortonworks Sandbox

从外部在 Hortonworks Sandbox 上执行 Spark 作业

Pig 未将数据加载到 HCatalog 表中 - HortonWorks Sandbox [关闭]

无法将 Spark 与 Eclipse 中的 Hortonworks Sandbox 连接