sqoop从mysql导入hdfs的时候,报错ERROR manager.SqlManager

case:

用sqoop导出mysql数据到hdfs出现以下错误:

14/12/03 16:37:58 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@54b0a583 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@54b0a583 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:930)

        at com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData(MysqlIO.java:2694)

        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1868)

        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2109)

        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2642)

        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2571)

        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1464)

        at com.mysql.jdbc.ConnectionImpl.getMaxBytesPerChar(ConnectionImpl.java:3030)

        at com.mysql.jdbc.Field.getMaxBytesPerCharacter(Field.java:592)

        at com.mysql.jdbc.ResultSetMetaData.getPrecision(ResultSetMetaData.java:444)

        at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:285)

        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:65)

        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)

14/12/03 16:37:58 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: No columns to generate for ClassWriter

        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1584)

        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:65)

        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)

 

解决:   

这个是由于mysql-connector-java的bug造成的,出错时我用的是mysql-connector-java-5.1.17-bin.jar,更新成mysql-connector-java-5.1.35-bin.jar就可以了。mysql-connector-java-5.1.35-bin.jar的下载地址为http://dev.mysql.com/get/Downl ... ar.gz。下载完后解压,在解压的目录下可以找到mysql-connector-java-5.1.35-bin.jar。 

下载地址:http://download.softagency.net ... -5.1/

Bangle

赞同来自:

请问一下换成你说的这种版本后依然报一样错,这是怎么回事?

要回复问题请先登录注册