19/09/26 17:21:38 ERROR manager.SqlManager:
Error reading from database: java.sql.SQLException:
Streaming result set com.mysql.jdbc.RowDataDynamic@4cc451f2 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@4cc451f2 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:2646)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1861)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
at com.mysql.jdbc.ConnectionImpl.getMaxBytesPerChar(ConnectionImpl.java:2945)
at com.mysql.jdbc.Field.getMaxBytesPerCharacter(Field.java:582)
at com.mysql.jdbc.ResultSetMetaData.getPrecision(ResultSetMetaData.java:441)
at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:286)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:241)
at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:227)
at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295)
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1833)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1645)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107)
at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:64)
at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:100)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
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)
19/09/26 17:21:38 ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter
这个是由于mysql-connector-java的bug造成的,
出错时我用的是mysql-connector-java-5.1.7-bin.jar,
换成mysql-connector-java-5.1.35-bin.jar就可以了。
mysql-connector-java-5.1.35-bin.jar的下载地址为
http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.35.tar.gz。
下载完后解压,在解压的目录下可以找到mysql-connector-java-5.1.35-bin.jar。
然后复制到sqoop的lib下。
本文详细介绍了在使用Sqoop工具时遇到的与mysql-connector-java相关的Streaming ResultSet未关闭导致的数据库读取错误,并提供了解决方案,即更换mysql-connector-java版本。
1848

被折叠的 条评论
为什么被折叠?



