Hi Sam, Sqoop uses HSQLDB version 1.8, not 2.0. There was period of time when Hadoop was forcing HSQLDB 2.0 into downstream component classpath, but that was resolved. Please check out SQOOP-571 for more background.
I've tried both 1.4.3 and 1.4.3 releases on BigTop 0.6 (that is based on Hadoop 2.0.5-alpha) and both were working for me without any issues, so I'm wondering what Hadoop version are you using? Jarcec On Wed, Aug 07, 2013 at 02:56:47PM +0800, sam liu wrote: > Hi Abe, > > I tried with --driver param, but it does not work for me, and returned the > same exception. > > My command is 'bin/sqoop import --driver com.mysql.jdbc.Driver --connect > jdbc:mysql://hostname:3306/test --username user --password pwd --table > testtbl -m 1 --target-dir /tmp/test6'. > > Thanks! > > > 2013/8/7 Abraham Elmahrek <[email protected]> > > > Sam, > > > > Did you try the --driver parameter? It allows you to choose the JDBC > > driver class. > > > > -Abe > > > > > > On Tue, Aug 6, 2013 at 7:54 PM, sam liu <[email protected]> wrote: > > > >> I think this is a defect of Sqoop, and opened a jira for it: > >> https://issues.apache.org/jira/browse/SQOOP-1164. I set the priority as > >> Minor, because it has the workaround: only leave the target driver jar file > >> in the sqoop/lib folder, but remove other driver jar files from the folder. > >> However, it should be mentioned that when we have many dirver jar files > >> under sqoop/lib folder for multiple kinds of databases, or a script will > >> connect to different databases, this workaround can not work well. > >> > >> Thanks! > >> > >> > >> 2013/8/6 sam liu <[email protected]> > >> > >>> Hi Experts, > >>> > >>> 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. > >>> > >>> Why? What's the correct method to invoke import tool to avoid such > >>> issue? Thanks! > >>> > >>> > 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) > >>> > >>> -- > >>> > >>> Sam Liu > >>> > >> > >> > >> > >> -- > >> > >> Sam Liu > >> > > > > > > > -- > > Sam Liu
signature.asc
Description: Digital signature
