Источник SQL Server в Google Data Fusion не работает (проблема рукопожатия SSL) - PullRequest
2 голосов
/ 24 июня 2019

Я создал простой конвейер в Data Fusion, который читает из одной таблицы MS SQL Server и записывает в BigQuery.Сбой при подключении к SQL Server с ошибкой установления соединения сокетом.

Я видел эту проблему при создании моих собственных кластеров dataproc, и я знаю, что это связано с dataproc, использующим concerypt в качестве значения по умолчанию при выполнении ssl,Я также нашел обходной путь, который устанавливает свойство при создании кластера: dataproc: dataproc.conscrypt.provider.enable = false

Это невозможно при запуске Data Fusion, поскольку я не могу контролировать работу кластерасоздано.Я попытался добавить свойство в раздел конфигурации движка, но оно не работает, и свойство не отображается на странице конфигурации кластера dataproc.

Это трассировка стека в Data Fusion:

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 в Data Fusion.

1 Ответ

4 голосов
/ 26 июня 2019

Это происходит потому, что Dataproc по умолчанию использует поставщика SSL Conscrypt, у которого ошибка при создании контекста SSL с помощью поставщика SSL Conscrypt.

Решение Чтобы устранить проблему во время работы конвейера, отключите с помощьюво время создания кластера Dataproc.Это можно сделать, установив следующий аргумент времени выполнения для конвейера.

system.profile.properties.dataproc: dataproc.conscrypt.provider.enable false

СледующееСнимок экрана показывает, как установить это для конвейера, используя пользовательский интерфейс

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...