将 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 连接超时错误的主要内容,如果未能解决你的问题,请参考以下文章

将 sparklyr 连接到远程 spark 连接

如何使用远程桌面连接到 SQL Server

使用excel连接到远程sql数据库

在 Spark 中使用 jdbc 驱动程序连接到 Hive

使用身份密钥连接到远程主机(其他身份验证方法?)

无法将 C# 应用程序连接到 MSSQL