hive sqoop 问题 Io exception: Connection timed out
来源:互联网 发布:端口扫描器怎么用 编辑:程序博客网 时间:2024/06/06 00:20
当从数据库 读数据的时候 有可能会 Connection timed out, 这是由于sqoop会缓存 connection的原因, 当要load 数据到hive的时候 会再次访问oracle数据库,但是这个时候缓存的 数据库连接对象已经超时了或者被数据库干掉了,解决方法有三个:
方法一:
修改oracle数据库配置:
Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120
方法二:
先看sqoop 源码片段
@Override
public Connection getConnection() throws SQLException {
if (null == this.connection) {
this.connection = makeConnection();
}
return this.connection;
}
第一次获取数据库连接的时候将连接保存,下次直接判断this.connection是否存在 若存在复用, 如果这个时候缓存的 连接超时了就会报错:(Io exception: Connection timed out)
@Override
public Connection getConnection() throws SQLException {
if (null == this.connection) {
this.connection = makeConnection();
}
return this.connection;
}
每次都直接创建就避免了问题
@Override
public Connection getConnection() throws SQLException {
// if (null == this.connection) {
this.connection = makeConnection();
// }
return this.connection;
}
方法三:
起个线程 每三十秒(oracle 默认连接超时时间应该是60秒)发送个简单的请求防止超时
遇到问题定位了下, 对sqoop还不是特别熟悉,但感觉代码不是很,难比spring源码差远了。
异常详细:
13/05/07 19:17:37 ERROR manager.SqlManager: Error executing statement: java.sql.SQLRecoverableException: Io exception: Connection timed out
java.sql.SQLRecoverableException: Io exception: Connection timed out
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:458)
at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:621)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3389)
at org.apache.sqoop.manager.OracleManager$ConnCache.getConnection(OracleManager.java:190)
at org.apache.sqoop.manager.OracleManager.makeConnection(OracleManager.java:283)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:525)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:191)
at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:175)
at org.apache.sqoop.hive.TableDefWriter.getCreateTableStmt(TableDefWriter.java:126)
at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:174)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228)
at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
13/05/07 19:17:37 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.sqoop.hive.TableDefWriter.getCreateTableStmt(TableDefWriter.java:171)
at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:174)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228)
at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
- hive sqoop 问题 Io exception: Connection timed out
- 解决apache mina java.io.IOException: Connection timed out问题
- org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection timed out: c
- org.dom4j.DocumentException: Connection timed out: connect Nested exception
- org.dom4j.DocumentException: Connection timed out: connect Nested exception:
- mysql Connection timed out
- webservice Connection timed out
- Connection timed out: connect
- Connection timed out: connect
- Connection timed out: connect
- hibernate的org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection
- Caused by: org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection t
- 关于ConnectException: Connection timed out: connect的问题
- WARNING: inbound connection timed out (ORA-3136)连接超时问题
- hibernate 的 org.dom4j.DocumentException: Connection timed out 问题
- SecureCRT 连接Ubuntu 16.04出现Connection timed out 的问题
- Connection timed out: connect 解决方法
- Error:Connection timed out: connect
- 动态加载feature样式
- 蟒蛇十分钟入门
- 数据存储 SharedPreferences 的应用之音乐播放,点击返回后再次进入该界面,仍显示上次关闭前的状态
- FFmpeg+x264编码qcif会出现花屏的问题
- Python模块学习 ---- struct 数据格式转换
- hive sqoop 问题 Io exception: Connection timed out
- fgets函数与fputs函数
- flexigrid结合SSH常见问题及使用笔记
- Android重力感应编程
- android4.0触摸屏滑鼠模式解决方法-添加idc文件
- windows和ubuntu双系统默认选择系统和等待时间的设置
- 开发、运维DBA职能梳理
- 实现主机的XP系统和虚拟机的ubuntu系统的文件共享
- 如何安装ubuntu,如何安全删除ubuntu