我有一个基于cdh5的hadoop ha设置。我试图使用sqoop从mysql导入表失败并出现以下错误。
15/03/20 12:47:53 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@33573e93 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@33573e93 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.
我使用了以下命令..
sqoop import --connect jdbc:mysql://<mysql hostname>:3306/haddata --username root --password password --table authors --hive-import
我的mysql服务器版本是5.1.73-3。并使用了mysql-connector-java
的5.1.34和5.1.17版本sqoop version is 1.4.5-cdh5.3.2
请告诉我任何建议/意见。
答案 0 :(得分:27)
尝试在导入命令中包含选项--driver com.mysql.jdbc.Driver。
答案 1 :(得分:9)
尝试使用以下修改后的命令,该命令可以满足您的目的
sqoop import --connect jdbc:mysql://<mysql hostname>:3306/haddata --driver com.mysql.jdbc.Driver --username root --password password --table authors --hive-import
答案 2 :(得分:6)
在sqoop命令中包含驱动程序参数--driver com.mysql.jdbc.Driver
。
sqoop import --connect jdbc:mysql://<mysql hostname>:3306/<db name> --username **** --password **** --table <table name> --hive-import --driver com.mysql.jdbc.Driver
--driver参数强制sqoop使用在sqoop机器上为mysql db安装的最新mysql-connector-java.jar
答案 3 :(得分:2)
尝试使用mysql-connector-java-5.1.31.jar,它与sqoop 1.4.5兼容。
mysql-connector-java-5.1.17.jar驱动程序不能与sqoop 1.4.5一起使用。
参考:
答案 4 :(得分:0)
如果你在$ HADOOP_HOME / bin文件夹中有com.mysql.jdbc_5.1.5.jar或任何版本的com.mysql.jdbc_5.X.X.jar文件,那么删除它,并执行你的SQOOP查询。
答案 5 :(得分:0)
在导入命令中包含选项--driver com.mysql.jdbc.Driver为我工作。
答案 6 :(得分:0)
Sqoop未附带第三方JDBC驱动程序。您必须单独下载它们并将它们保存到服务器上的/ var / lib / sqoop /目录中。
注意: JDBC驱动程序只需安装在运行Sqoop的机器上。您无需在Hadoop集群中的所有主机上安装它们。
您可以从此处下载驱动程序:https://dev.mysql.com/downloads/connector/j/5.1.html
答案 7 :(得分:0)
尝试完整的命令,如下所示。
sqoop import --connect“jdbc:mysql:// localhost:3306 / books” --username = root --password = root --table authors --as-textfile --target -dir = / datasqoop / authors_db --columns“id,name,email”--split-by id --driver com。 mysql.jdbc.Driver
这将解决您的问题。
答案 8 :(得分:0)
找到sqoop中使用的jar位置,在我的例子中,它指向链接/usr/share/java/mysql-connector-java.jar
所以当我检查链接/usr/share/java/mysql-connector-java.jar时,它指向mysql-connector-java- 5.1.17 .jar
/usr/share/java/mysql-connector-java.jar - &gt; MySQL的连接器的Java-5.1.17.jar
由于5.1.17存在此问题,请尝试 5.1.37或更高版本。
unlink /usr/share/java/mysql-connector-java.jar
ln -s /usr/share/java/mysql-connector-java.jar /usr/share/java/mysql-connector-java-5.1.37.jar