将 spark 应用程序连接到远程 sql 服务器时出现 jdbc 连接超时错误
Posted
技术标签:
【中文标题】将 spark 应用程序连接到远程 sql 服务器时出现 jdbc 连接超时错误【英文标题】:jdbc Connection time out error while connecting spark application to a remote sql server 【发布时间】:2016-05-30 02:35:30 【问题描述】:我有一个 pyspark 应用程序,它从远程 sql 服务器获取数据,它
直到最近一直工作正常,我已将我的 sql server 2016 CTP3 升级到 sql
server 2016 RC3 developer version,现在我无法连接到数据库了,使用相同的配置我可以连接。我不确定发生了什么,并尝试了所有可能的方法来解决这个问题。
错误信息:
: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host myserver.cloudapp.net, port 1433 has failed. Error: "connect timed out. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall."
我知道它发生的原因以及可能的原因,并且我已确保以各种可能的方式来应对这种情况
-
已停止 [myserver] 中的防火墙
确保我的 sqlserver 服务正在运行
在其配置管理器中,我启用了 tcp ip 连接及其侦听 1433 端口中的所有 IP。
我的 spark 应用程序驻留在 Azure HDInsight spark 集群和我的 sql 中
服务器数据库位于 windows 2012 服务器中(不确定这是否会产生任何影响
差异),尽管我能够从同一个集群连接到具有相同配置的先前 Windows 服务器
现在我的服务器中的netstat -a
显示有多个已建立的连接,其中本地地址是我的机器 IP,端口是 1433。超时请求也很少,但它们不在 1433 端口中,我认为这意味着它们与我的 sql server 连接无关。
有什么办法可以找出这里的问题吗?我想我已经涵盖了所有可能发生的原因,但我仍然收到此错误
【问题讨论】:
【参考方案1】:经过一番努力,我发现我的问题出在云防火墙上,所以如果您使用的是 Azure 或 AWS,请确保您的云防火墙中也打开了 1433 端口。希望这对某人有所帮助。
【讨论】:
以上是关于将 spark 应用程序连接到远程 sql 服务器时出现 jdbc 连接超时错误的主要内容,如果未能解决你的问题,请参考以下文章