首页 > 解决方案 > spark/sqoop 到 db2 的错误原因是:com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException

问题描述

尝试使用 sqoop 和 spark 将数据从 db2 导入 hdfs 时出现以下错误。

Caused by: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2043][11550][3.66.46] Exception java.net.ConnectException: Error opening socket to server ip-xx.xx.xx.ec2.interna  on port 50,000 with message: 

尝试使用火花本地模式时,我能够获取数据。但在纱线模式下出现错误

标签: apache-sparkdb2sqoop

解决方案


您正在使用旧的 jdbc 3.0 驱动程序(来自 Db2 V10.5 fixpack 0 (GA)。

升级到最新的 jdbc 4.0 驱动程序 (db2jcc4.jar) 版本 4.26.14 或更高版本。

在某些情况下,此升级将解决 DisconnectNonTransientConnectionException 问题。

这里下载。

如果症状重复出现,请做更多的问题确定。连接超时 (sqlcode=-4499) 几乎总是配置错误。

具体验证集群名称/地址和端口号是否正确,没有防火墙问题,并进行 jdbc 跟踪以查看幕后发生的情况(需要研究)。

Db2 知识中心在线详细介绍了如何在客户端收集 jdbc 跟踪信息

Db2 知识中心还提供了有关如何在客户端和服务器之间的路由复杂或存在延迟问题时增加TCPIP 连接超时的详细信息。


推荐阅读