Подключение Apache NiFi к Confluent Cloud

Мы пытаемся подключиться к Confluent Cloud из Apache NiFi с помощью PublishKafka. Получение следующей ошибки. Мы используем PublishKafka с настройкой ssl, ключом и секретом API Kafka для подключения к Kafka.

Неожиданная ошибка от pkckg.eastus.azure.confluent.cloud/20.23>java.lang.RuntimeException: непредвиденная ошибка: java.security.InvalidAlgorithmParameterException: параметр trustAnchors должен быть непустым

org.apache.kafka.common.network.Selector [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] Неожиданная ошибка от pkc-56d1g.eastus.a>java.lang.RuntimeException: Неожиданная ошибка: java.security.InvalidAlgorithmParameterException : параметр trustAnchors не должен быть пустым

2022-12-09 01:01:32,078 WARN [Управляемый таймером поток процесса-7] org.apache.kafka.clients.NetworkClient [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] Подключение к узлу -1 (xxxx .eastus.azure.confluent.cloud/20.2>2022-12-09 01:01:32,078 WARN [поток процесса, управляемый таймером-7] org.apache.kafka.clients.NetworkClient [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] Брокер начальной загрузки pkc-56d1g.eastus.azure.confluent.cloud:9092 (id: >2022-12-09 01:01:33,055 WARN [kafka-producer-network-thread | производитель-4] org.apache .kafka.common.network.Selector [Producer clientId=producer-4] Непредвиденная ошибка от pkc-56d1g.eastus.azure.confluent.cloud/20.237.15.111, закрытие connec>java.lang.RuntimeException: Непредвиденная ошибка: java.security .InvalidAlgorithmParameterException: параметр trustAnchors должен быть непустым. на java.base/sun.security.validator.PKIXValidator.(PKIXValidator.java:102) в java.base/sun.security.validator.Validator.getInstance(Validator.java:181) в java.base/sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:300) в java.base/sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:176) в java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:246) в java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:141) в java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:632) в java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473) в java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369) на java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) в java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:443) в java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1074) в java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1061) в java.base/java.security.AccessController.doPrivileged (собственный метод) в java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1008) на org.apache.kafka.common.network.SslTransportLayer.runDelegatedTasks(SslTransportLayer.java:430) на org.apache.kafka.common.network.SslTransportLayer.handshakeUnwrap(SslTransportLayer.java:514) на org.apache.kafka.common.network.SslTransportLayer.doHandshake(SslTransportLayer.java:368) на org.apache.kafka.common.network.SslTransportLayer.handshake(SslTransportLayer.java:291) на org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:173) на org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:547) на org.apache.kafka.common.network.Selector.poll(Selector.java:485) в org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:547) на org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325) на org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240) на java.base/java.lang.Thread.run(Thread.java:829) Вызвано: java.security.InvalidAlgorithmParameterException: параметр trustAnchors должен быть непустым в java.base/java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200) в java.base/java.security.cert.PKIXParameters.(PKIXParameters.java:120) в java.base/java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:104) на java.base/sun.security.validator.PKIXValidator.(PKIXValidator.java:99) ... 25 общих кадров пропущены 2022-12-09 01:01:33,055 ПРЕДУПРЕЖДЕНИЕ [kafka-producer-network-thread | производитель-4] org.apache.kafka.clients.NetworkClient [Producer clientId=producer-4] Соединение с узлом -1 (xxxx.eastus.azure.confluent.cloud/x.x.x.x:9092) прекращено> 2022-12-09 01:01:33,055 ПРЕДУПРЕЖДЕНИЕ [kafka-producer-network-thread | производитель-4] org.apache.kafka.clients.NetworkClient [Producer clientId=producer-4] Брокер начальной загрузки pkc-56d1g.eastus.azure.confluent.cloud:9092 (id: -1 стойка: null) отключен 2022-12-09 01:01:33,087 ПРЕДУПРЕЖДЕНИЕ [поток процесса, управляемый таймером-8] org.apache.kafka.common.network.Selector [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] Непредвиденная ошибка от pkc- 56d1g.eastus.azure.confluent.cloud/20.>java.lang.RuntimeException: непредвиденная ошибка: java.security.InvalidAlgorithmParameterException: параметр trustAnchors должен быть непустым.

В вопросе отсутствует информация о том, как вы настроили свой клиент Nifi.

OneCricketeer 19.12.2022 04:08
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
1
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующие шаги помогут решить проблему с подключением:

  1. В Confluent CLI Tools сгенерируйте ключ API и секрет.
  2. В Apache NiFi создайте новый StandardRestrictedSSLContextService или StandardSSLContextService с сертификатом CA, путем и паролем. Если сертификат скопирован по пути по умолчанию, обратитесь к ним в службах контроллера. Примечание. Пароль по умолчанию будет changeit.
  3. В процессоре PublishKafkaRecord & ConsumeKafkaRecord NiFi,
  • а) использовать созданную выше контекстную службу SSL.

  • б) Используйте сгенерированный выше ключ API и секрет для свойств имени пользователя и пароля в Процессорах.

  • c) Убедитесь, что значения свойств «Протокол безопасности» и «Механизм SASL» в процессорах NiFi соответствуют конфигурации в Confluent Kafka.

Это должно быть для подключения Apache NiFi и Confluent Cloud.

Другие вопросы по теме