【问题描述】
使用Sqoop从Oracle抽数据到Hive表时,有时候会遇到以下报错;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
Error: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Connection reset
at org.apache.sqoop.mapreduce.db.DBInputFormat.setDbConf(DBInputFormat.java:170)
at org.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:161)
at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:749)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
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:1714)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)Caused by: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Connection reset
at org.apache.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:223)
at org.apache.sqoop.mapreduce.db.DBInputFormat.setDbConf(DBInputFormat.java:168)
... 10 more |
【问题原因】
此问题一般是由于缺少一个生成快速随机数的工具;
【问题解决】
一般可以通过在JRE中的java.security中修改securerandom.source的值为以下内容;
|
1
2
3 |
cd
$JAVA_HOME
/jre/lib/securityvi
java.securitysecurerandom.
source
=
file
:
/dev/
..
/dev/urandom |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69976626/viewspace-2729311/ ,如需转载,请注明出处,否则将追究法律责任。