hadoop - Sqoop 从 SybaseIQ 导入到 Hive - java.io.IOException : SQLException in nextKeyValue

标签 hadoop jdbc sqoop sap-iq

当我尝试将表导入 Hive 时,出现了一个奇怪的错误。

查询:

sqoop import  --connect 'jdbc:sybase:Tds:10.100.*.***:5500/DATABASE=****' --driver 'com.sybase.jdbc3.jdbc.SybDriver' --username "****" --password "***" --table dw.dm_court_courttype --direct -m 1 --hive-import --create-hive-table --hive-table DM_court_courtcype --target-dir "/user/hive/warehouse/DM_Court_CourtType" --verbose

错误:

java.io.IOException: SQLException in nextKeyValue at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:565) at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:346) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1595) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: com.sybase.jdbc3.jdbc.SybSQLException: SQL Anywhere Error -131: Syntax error near '.' on line 1 at com.sybase.jdbc3.tds.Tds.a(Unknown Source) at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source) at com.sybase.jdbc3.tds.Tds.getResultSetResult(Unknown Source) at com.sybase.jdbc3.tds.TdsCursor.open(Unknown Source) at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source) at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source) at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111) at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235) ... 12 more

最佳答案

不要将数据库名称与表名称一起使用。

使用 --table dm_court_courttype 而不是 --table dw.dm_court_courttype

试试这个:

sqoop import --connect 'jdbc:sybase:Tds:10.100..:5500/DATABASE=****' --driver 'com.sybase.jdbc3.jdbc.SybDriver' --username "****" --password "*" --table dm_court_courttype --direct -m 1 --hive-import --create-hive-table --hive-table DM_court_courtcype --target-dir "/user/hive/warehouse/DM_Court_CourtType" --verbose

关于hadoop - Sqoop 从 SybaseIQ 导入到 Hive - java.io.IOException : SQLException in nextKeyValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42668688/

相关文章:

java - 在 JDBC for Oracle 中设置客户端信息

hadoop - 在 Tez 和 Map reduce 中运行 "count(*) "时的行为差异

hadoop - 为什么我们需要 hadoop 用于 hypertable

java - 关于 Spring @Autowired 和 Spring JDBC 的问题

java - Microsoft Access 和 Java JDBC-ODBC 错误

sqoop - 导入失败: Duplicate Column identifier specified (sqoop)

hadoop - 无法在 oozie 中运行 "sqoop job --exec"

hadoop - 除了SQOOP之外,还有什么方法可以从RDBMS传输到HDFS吗?

java - 在hadoop map 上查找百分比减少

hadoop - 权限被拒绝 hive + oozie