【问题标题】:sqoop to mysql importing issuesqoop 到 mysql 导入问题
【发布时间】:2015-11-17 13:20:30
【问题描述】:

我正在使用以下命令从 mysql 表中获取数据到 hive 表:

sqoop import \
--connect jdbc:mysql://xx.xx.xx.xx/orderdbms \
--username=orderuser \
--password=orderpass \
--table=order \
--where="DATE(created)='2015-08-20'" \
--hive-import \
--hive-table=orderstat.order \
--target-dir=/user/ordermanager/sqoopdata/orders \
--direct

执行上述操作时出现以下错误:

从数据库读取错误:java.sql.SQLException: Streaming result 设置 com.mysql.jdbc.RowDataDynamic@1f16ebd3 仍处于活动状态。不 当任何流式结果集打开并且 在给定的连接上使用。确保您已调用 .close() 在尝试更多查询之前任何活动的流式传输结果集。 java.sql.SQLException:流式处理结果集 com.mysql.jdbc.RowDataDynamic@1f16ebd3 仍处于活动状态。没有声明 当任何流式传输结果集打开并在 给定的连接。确保您在任何活动上调用了 .close() 在尝试更多查询之前流式传输结果集。在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:914) 在 com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData(MysqlIO.java:2181) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1542) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723) 在 com.mysql.jdbc.Connection.execSQL(Connection.java:3277) 在 com.mysql.jdbc.Connection.execSQL(Connection.java:3206) 在 com.mysql.jdbc.Statement.executeQuery(Statement.java:1232) 在 com.mysql.jdbc.Connection.getMaxBytesPerChar(Connection.java:3673) 在 com.mysql.jdbc.Field.getMaxBytesPerCharacter(Field.java:482) 在 com.mysql.jdbc.ResultSetMetaData.getPrecision(ResultSetMetaData.java:443) 在 org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:286) 在 org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:241) 在 org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:227) 在 org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295) 在 org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1833) 在 org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1645) 在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:143) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:236) 15/08/24 11:54:46 错误 tool.ImportTool:运行导入作业时遇到 IOException: java.io.IOException:没有为 ClassWriter 生成列 org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1651) 在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:143) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:236)

谁能解释一下是什么原因造成的?客户端和mysql服务器之间的语法或连接问题是否存在问题。

【问题讨论】:

  • 我不知道hivesqoop。阅读错误堆栈消息,我认为在您发出 hive 导入之前,sqoop 导入尚未完成,因此您可能需要关闭连接并显式启动第二次导入。
  • 你能不能把mysql jar换成sqoop lib目录下最新版本的jar

标签: mysql hive sqoop


【解决方案1】:

尝试添加选项

--driver com.mysql.jdbc.Driver

【讨论】:

    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    相关资源
    最近更新 更多