Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDyna
2016-06-28 18:29
435 查看
一异常原因用Sqoop将数据从mysql导入到Hbase表出现异常如下:
[root@master bin]# ./sqoop import --connect jdbc:mysql://192.168.10.169/qyyx_test --username root --
password sendinfo --table spread_log --hbase-create-table --hbase-table phone --column-family info
--hbase-row-key rk01Warning: /usr/home/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../hcatalog does
not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/home/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../accumulo does not exist! Accumulo
imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
16/06/29 00:16:46 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
16/06/29 00:16:46 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure.
Consider using -P instead.
16/06/29 00:16:46 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
16/06/29 00:16:46 INFO tool.CodeGenTool: Beginning code generation
16/06/29 00:16:46 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `spread_log` AS t
LIMIT 1
16/06/29 00:16:46 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException:
Streaming result set com.mysql.jdbc.RowDataDynamic@75225918 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@75225918 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:2622)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1846)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at com.mysql.jdbc.ConnectionImpl.getMaxBytesPerChar(ConnectionImpl.java:2931)
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.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
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)
16/06/29 00:16:46 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:1651)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
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)
[root@master bin]# 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
二异常原因
上面异常由由于mysql-connector-java-5.1.6/中mysql-connector-java-5.1.10-bin.jar放到sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib下版本出现问题。
三解决方案
将mysql-connector-java-5.1.10-bin.jar换成mysql-connector-java-5.1.39-bin.jar
[root@master bin]# ./sqoop import --connect jdbc:mysql://192.168.10.169/qyyx_test --username root --
password sendinfo --table spread_log --hbase-create-table --hbase-table phone --column-family info
--hbase-row-key rk01Warning: /usr/home/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../hcatalog does
not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/home/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/../../accumulo does not exist! Accumulo
imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
16/06/29 00:16:46 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
16/06/29 00:16:46 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure.
Consider using -P instead.
16/06/29 00:16:46 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
16/06/29 00:16:46 INFO tool.CodeGenTool: Beginning code generation
16/06/29 00:16:46 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `spread_log` AS t
LIMIT 1
16/06/29 00:16:46 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException:
Streaming result set com.mysql.jdbc.RowDataDynamic@75225918 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@75225918 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:2622)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1846)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at com.mysql.jdbc.ConnectionImpl.getMaxBytesPerChar(ConnectionImpl.java:2931)
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.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
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)
16/06/29 00:16:46 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:1651)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
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)
[root@master bin]# 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
二异常原因
上面异常由由于mysql-connector-java-5.1.6/中mysql-connector-java-5.1.10-bin.jar放到sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib下版本出现问题。
三解决方案
将mysql-connector-java-5.1.10-bin.jar换成mysql-connector-java-5.1.39-bin.jar
相关文章推荐
- Java环境变量配置
- Java干货之回头补基础(一) ——Callback机制个人理解及应用
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】
- JAVA自学之每日一题(二)
- JAVA XML格式化输出
- [XML]学习笔记(九)DOM
- 修改 eclipse 文件编码格式
- Spring中bean的生命周期!
- HDU1850 Being a Good Boy in Spring Festival(博弈)
- java基础学习总结——super关键字
- java不定长参数方法
- 2016.6.28笔记(3)-Struts2
- java中拦截器与过滤器的区别分析
- Struts2 拦截器(Interceptor )原理和配置
- 项目中应用spring-beans源码剖析
- 解决Struts2 使用Common-FileUpload List<FileItem>为空的问题
- Eclipse各版本代号一览表
- spark出现GC overhead limit exceeded和java heap space
- Java虚拟机工作原理详解
- Java基础_Thread(一)