Источник SQL Server в Google Data Fusion не работает (проблема с подтверждением SSL)

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

Я видел эту проблему при создании моих собственных кластеров dataproc, и я знаю, что это связано с dataproc, использующим по умолчанию consrypt при выполнении 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.


person Bjoern    schedule 24.06.2019    source источник


Ответы (1)


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

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

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

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

введите описание изображения здесь

person Sree    schedule 26.06.2019