使用Sqoop将Oracle与Hadoop连接时出错

时间:2015-05-19 18:25:07

标签: oracle hadoop sqoop

我在/ usr / lib / sqoop / lib中添加了ojdbc.jar文件,我正在尝试使用sqoop将oracle连接到hadoop但面临错误。  我正在使用以下命令:

sqoop list-tables --connect jdbc:oracle:thin://@192.162.2.8:1521:orcl  --username hr --password abc

但我得到以下错误:

15/05/05 09:21:31 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
15/05/05 09:21:32 ERROR manager.OracleManager: Failed to rollback transaction
java.lang.NullPointerException
    at com.cloudera.sqoop.manager.OracleManager.listTables(OracleManager.java:596)
    at com.cloudera.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
    at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:218)
    at com.cloudera.sqoop.Sqoop.main(Sqoop.java:228)
15/05/05 09:21:32 ERROR manager.OracleManager: Failed to list tables
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.cloudera.sqoop.manager.OracleManager.makeConnection(OracleManager.java:275)
    at com.cloudera.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:51)
    at com.cloudera.sqoop.manager.OracleManager.listTables(OracleManager.java:585)
    at com.cloudera.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
    at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:218)
    at com.cloudera.sqoop.Sqoop.main(Sqoop.java:228)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:439)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:454)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:693)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
    ... 16 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:149)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:405)

sqoop命令有什么问题。?

3 个答案:

答案 0 :(得分:0)

由于jdbc url不正确,错误“网络适配器无法建立连接”。 sqoop命令中的Jdbc url应采用以下格式:jdbc:oracle:thin:@ 192.162.2.8:1521:orcl

答案 1 :(得分:0)

据我所知,可能会出现连接拒绝错误。

  • Oracle服务可能未在指定的主机上运行 给定端口号。
  • 中间的防火墙可能会限制客户端访问 oracle服务器通过给定的端口号。

所以我建议你先确认oracle主机,端口和防火墙之间的限制。

您可以使用telnet轻松检查访问权限,如下所示

 telnet 192.162.2.8 1521

答案 2 :(得分:0)

查看监听器和数据库是否启动。我刚刚启动了监听器 (lsnrctl start) 和数据库 (sqlplus / as sysdba startup) 并且它工作正常。