当前位置: 首页 > 知识库问答 >
问题:

Google Data Fusion中的SQL Server源不起作用(SSL握手问题)

相弘方
2023-03-14

我在数据融合中创建了一个简单的管道,它从单个MSSQL服务器表读取并写入BigQuery。当连接到SQL服务器时,它会因套接字握手错误而失败。

我在创建自己的dataproc集群时看到了这个问题,我知道这与dataproc有关,在执行ssl时使用conscrypt作为默认值。我还找到了一种解决方法,即在创建集群时设置一个属性:dataproc:dataproc。康斯克里特。供应商。启用=false

这在运行数据融合时是不可能的,因为我无法控制如何创建集群。我已经尝试将该属性添加到引擎配置部分,但它不起作用,并且该属性没有显示在dataproc集群配置页面中。

这是数据融合中的堆栈跟踪:

java.net.SocketException: Socket is closed
    at org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:390) ~[libconscrypt.jar:1.2.0-SNAPSHOT]
    at org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:225) ~[libconscrypt.jar:1.2.0-SNAPSHOT]
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1688) ~[na:na]
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1977) ~[na:na]
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) ~[na:na]
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459) ~[na:na]
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) ~[na:na]
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) ~[na:na]
    at io.cdap.plugin.db.JDBCDriverShim.connect(JDBCDriverShim.java:60) ~[na:na]
    at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_212]
    at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_212]

我只想在数据融合中从SQL Server读取数据。

共有1个答案

罗淮晨
2023-03-14

发生这种情况是因为Dataproc默认使用Conscrypt SSL提供程序,该提供程序在使用Conscrypt SSL提供程序创建SSL上下文时存在错误。

解决方案修复了在创建Dataproc群集时使用concrypt禁用管道时出现的问题。这可以通过为管道设置以下运行时参数来实现。

系统轮廓属性。dataproc:dataproc。康斯克里特。供应商。启用false

以下屏幕截图显示了如何使用UI为管道设置此项

 类似资料:
  • 我有一个使用WinSock2的cpp服务器,我试图用我的javascript客户端连接到这个服务器,但它不起作用,chrome控制台说“WebSocket握手过程中出错:不正确的‘Sec-WebSocket-Access’标头值”。我把我的sha1和bas64函数与在线进行了比较Sha1和Base64,所以问题不在这里。 Chrome响应报头: Chrome请求头: 服务器代码: 客户代码:

  • 我尝试为Dovecot启用SSL。因此,我使用OpenSSL生成/安装证书。但是当我试图测试conncection时,客户机报告错误。也许有人能帮我。指引我正确的方向? 命令行输入:openssl s_client-connect localhost:pop3s 结果/错误: Dovecot版本:2.0.9 Openssl版本:1.0.1e-FIPS2013年2月11日 SSL的Dovecot配置

  • 尝试连接到Azure CosmosDB mongo服务器会导致SSL握手错误。 我正在使用<code>Python3连接到我的Azure CosmosDB。如果我使用Python27运行代码,连接工作正常,但使用python 3时会导致以下错误: 在<code>Python3 pymongo.errors.ServerSelectionTimeoutError: SSL 握手失败: backend

  • 我正在尝试在我的Kafka服务器上启用SSL身份验证。我在Kafka文档中遵循7.2节。 遵循了所有步骤,但是当调用Producer.bat文件将数据发送到主题时,我得到了下面的错误。

  • 我有以下建立SSL连接的简单代码。 如果我在Java8下运行这段代码,它就不起作用了。它以开始SSL握手时停止。 代理端口:8081 如果删除或将其设置为false,它也不能用于Java10。但是通过系统属性设置代理设置是不起作用的。

  • 我已经在预打包的jetty服务器前面安装了http反向代理。jetty服务器是预配置的应用程序,不太灵活。此Jetty服务器将只接受SSL请求。 我将nginx配置为使用自己的SSL证书在443上侦听SSL流量。然后在nginx后面,我在另一台运行jetty服务器的机器上有另一台服务器,在端口443上有自己的证书。 我的Nginx配置如下所示, 如果我在https上点击jetty服务器,就会得到一