You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Cheolsoo Park (JIRA)" <ji...@apache.org> on 2012/07/27 19:51:37 UTC
[jira] [Commented] (SQOOP-524) hsqldb jar update regression
[ https://issues.apache.org/jira/browse/SQOOP-524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13424009#comment-13424009 ]
Cheolsoo Park commented on SQOOP-524:
-------------------------------------
Hi Abhijeet, thanks for reporting this problem. In fact, this is the same issue that I had with hadoop YARN where hdsqldb-2.0.0.jar from hadoop YARN is loaded before hsqldb-1.8.0.jar.
Unfortunately, I think that we should build two versions of Sqoop for MR1 and MR2? If this is just a build issue, it is not too hard to solve; however, code change is required to get unit test passing with each version of hsqldb.
Thoughts?
> hsqldb jar update regression
> ----------------------------
>
> Key: SQOOP-524
> URL: https://issues.apache.org/jira/browse/SQOOP-524
> Project: Sqoop
> Issue Type: Bug
> Reporter: Abhijeet Gaikwad
> Assignee: Abhijeet Gaikwad
> Priority: Blocker
> Fix For: 1.4.2
>
>
> This is due to recent update of hsqldb jar version. Updating the jar does not break the build but it breaks the execution of every SQOOP job, as Hadoop's classpath is prepended to Sqoop's classpath and hadoop contains previous version of hsqldb JAR.
> This is a class loading issue. hsqldb-1.8.0.10.jar from hadoop is loaded first and we have hsqldb-2.2.8.jar specific code in sqoop.
> Steps to reproduce:
> 1. Checkout latest revision from SVN/GIT
> 2. Build - "ant -Dhadoopversion <as_per_hadoop_version_you_have>"
> 3. Try to run sqoop with any DBMS. You get -
> 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:582)
> at java.sql.DriverManager.getConnection(DriverManager.java:185)
> at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:665)
> at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
> at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:525)
> at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548)
> at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:191)
> at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:175)
> at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:262)
> at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1235)
> at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1060)
> 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:65)
> 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)
> at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
> Unless, you set this on command-line:
> export HADOOP_USER_CLASSPATH_FIRST=true
> Haven't tried ahead but it should also fail when Sqoop internally triggers a Hadoop JOB. This is just a speculation, will confirm this.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira