You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Jarek Jarcec Cecho (JIRA)" <ji...@apache.org> on 2013/08/11 23:16:48 UTC

[jira] [Updated] (SQOOP-1164) sqoop picks up hsqldb driver jar when connect to mysql db, and failed

     [ https://issues.apache.org/jira/browse/SQOOP-1164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jarek Jarcec Cecho updated SQOOP-1164:
--------------------------------------

    Description: 
Under SQOOP/lib, I have both hsqldb driver jar file and mysql driver jar file:
- lib/hsqldb-1.8.0.10.jar
- lib/mysql-connector-java-5.1.20-bin.jar

But, when I try to connect to mysql db using sqoop import tool, sqoop will pick up hsqldb driver jar and returned following exception. Even if I add '--connection-manager org.apache.sqoop.manager.MySQLManager' into the command, this issue still exists. But, after I removed the hsqldb jar file from lib folder, this issue does not exist any more. 

{code}
> bin/sqoop import --connect jdbc:mysql://hostname:3306/test --connection-manager org.apache.sqoop.manager.MySQLManager --username user --password pwd --table testtbl -m 1 --target-dir /tmp/test5
13/08/05 18:44:03 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
13/08/05 18:44:03 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
13/08/05 18:44:03 INFO tool.CodeGenTool: Beginning code generation
Exception in thread "main" java.lang.NoSuchMethodError: org/hsqldb/DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
        at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
        at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:402)
        at java.sql.DriverManager.getConnection(DriverManager.java:450)
        at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:745)
        at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:605)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:628)
        at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:235)
        at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:219)
        at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:283)
        at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1255)
        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1072)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
{code}

A possible solution is to add a new parameter in Sqoop import/export/... tools to specify the path of driver jar(s). The new parameter likes '--driverJar lib/mysql-connector-java-5.1.20-bin.jar'.



  was:
Under SQOOP/lib, I have both hsqldb driver jar file and mysql driver jar file:
- lib/hsqldb-1.8.0.10.jar
- lib/mysql-connector-java-5.1.20-bin.jar

But, when I try to connect to mysql db using sqoop import tool, sqoop will pick up hsqldb driver jar and returned following exception. Even if I add '--connection-manager org.apache.sqoop.manager.MySQLManager' into the command, this issue still exists. But, after I removed the hsqldb jar file from lib folder, this issue does not exist any more. 

> bin/sqoop import --connect jdbc:mysql://hostname:3306/test --connection-manager org.apache.sqoop.manager.MySQLManager --username user --password pwd --table testtbl -m 1 --target-dir /tmp/test5
13/08/05 18:44:03 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
13/08/05 18:44:03 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
13/08/05 18:44:03 INFO tool.CodeGenTool: Beginning code generation
Exception in thread "main" java.lang.NoSuchMethodError: org/hsqldb/DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
        at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
        at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:402)
        at java.sql.DriverManager.getConnection(DriverManager.java:450)
        at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:745)
        at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:605)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:628)
        at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:235)
        at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:219)
        at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:283)
        at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1255)
        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1072)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

A possible solution is to add a new parameter in Sqoop import/export/... tools to specify the path of driver jar(s). The new parameter likes '--driverJar lib/mysql-connector-java-5.1.20-bin.jar'.



    
> sqoop picks up hsqldb driver jar when connect to mysql db, and failed
> ---------------------------------------------------------------------
>
>                 Key: SQOOP-1164
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1164
>             Project: Sqoop
>          Issue Type: Bug
>          Components: tools
>    Affects Versions: 1.4.3
>         Environment: RHEL 5.4 x86_64
>            Reporter: sam liu
>            Priority: Minor
>
> Under SQOOP/lib, I have both hsqldb driver jar file and mysql driver jar file:
> - lib/hsqldb-1.8.0.10.jar
> - lib/mysql-connector-java-5.1.20-bin.jar
> But, when I try to connect to mysql db using sqoop import tool, sqoop will pick up hsqldb driver jar and returned following exception. Even if I add '--connection-manager org.apache.sqoop.manager.MySQLManager' into the command, this issue still exists. But, after I removed the hsqldb jar file from lib folder, this issue does not exist any more. 
> {code}
> > bin/sqoop import --connect jdbc:mysql://hostname:3306/test --connection-manager org.apache.sqoop.manager.MySQLManager --username user --password pwd --table testtbl -m 1 --target-dir /tmp/test5
> 13/08/05 18:44:03 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
> 13/08/05 18:44:03 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
> 13/08/05 18:44:03 INFO tool.CodeGenTool: Beginning code generation
> Exception in thread "main" java.lang.NoSuchMethodError: org/hsqldb/DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
>         at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
>         at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
>         at java.sql.DriverManager.getConnection(DriverManager.java:402)
>         at java.sql.DriverManager.getConnection(DriverManager.java:450)
>         at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:745)
>         at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:605)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:628)
>         at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:235)
>         at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:219)
>         at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:283)
>         at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1255)
>         at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1072)
>         at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
>         at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
>         at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
>         at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>         at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
>         at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
> {code}
> A possible solution is to add a new parameter in Sqoop import/export/... tools to specify the path of driver jar(s). The new parameter likes '--driverJar lib/mysql-connector-java-5.1.20-bin.jar'.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira