Sqoop给出以下错误:java.io.IOException:nextKeyValue中的SQLException,由以下引起:java.sql.SQLException:Numeric Overflow

时间:2017-09-13 09:08:38

标签: sqoop

尝试从RDBMS导入表时Sqoop错误输出时出现以下错误日志:

>Error: 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:556)
>        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:787)
>        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
>        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at javax.security.auth.Subject.doAs(Subject.java:422)
>        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
>        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
>Caused by: java.sql.SQLException: Numeric Overflow
>        at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4170)
>        at oracle.jdbc.driver.NumberCommonAccessor.getBigDecimal(NumberCommonAccessor.java:2376)
>        at oracle.jdbc.driver.GeneratedStatement.getBigDecimal(GeneratedStatement.java:96)
>        at oracle.jdbc.driver.GeneratedScrollableResultSet.getBigDecimal(GeneratedScrollableResultSet.java:126)
>        at org.apache.sqoop.lib.JdbcWritableBridge.readBigDecimal(JdbcWritableBridge.java:126)
>        at com.cloudera.sqoop.lib.JdbcWritableBridge.readBigDecimal(JdbcWritableBridge.java:97)
>        at QueryResult.readFields(QueryResult.java:3639)
>        at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:244)
>        ... 12 more
>Container killed by the ApplicationMaster.
>Container killed on request. Exit code is 143
>Container exited with a non-zero exit code 143

虽然错误是可以理解的&似乎某些列值的值不能满足由sqoop决定的数据类型之一,但问题是有180个奇数列和数百万条记录然后如何识别哪一列造成了这个麻烦。 如何调试&解决这个问题?

0 个答案:

没有答案