Kafka connect 2.0.0 - невозможно создать соединители в режиме кластера - Ошибка: не удалось выполнить запрос к руководителю для перенастройки задач соединителя - PullRequest
0 голосов
/ 27 февраля 2020

Я развернул кластер Kafka connect (2.0.0) на 2 узлах, являющихся частью Hortonworks Data Platform 3.1.4. Он успешно развернут, и kafka connect также запускается. Я могу использовать команды REST для вывода списка соединителей методом GET.

Проблема в том, что когда я пытаюсь создать соединитель методом POST в кластерном режиме, он не может создать соединитель или создает его соединитель тогда не в состоянии создать задачу. Я вижу следующую ошибку в журналах

    [2020-02-14 15:45:41,622] ERROR [pool-3-thread-1] [org.apache.kafka.connect.runtime.distributed.DistributedHerder] - Request to leader to reconfigure connector tasks failed
org.apache.kafka.connect.runtime.rest.errors.ConnectRestException: Failed to start RestClient: org.eclipse.jetty.io.ManagedSelector@78075cca id=0 keys=0 selected=0
        at org.apache.kafka.connect.runtime.rest.RestClient.httpRequest(RestClient.java:74)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$18.run(DistributedHerder.java:1034)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.RejectedExecutionException: org.eclipse.jetty.io.ManagedSelector@78075cca id=0 keys=0 selected=0
        at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:383)
        at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:143)
        at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:91)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:273)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.doStart(AbstractConnectorHttpClientTransport.java:64)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:244)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.apache.kafka.connect.runtime.rest.RestClient.httpRequest(RestClient.java:71)
        ... 6 more
[2020-02-14 15:45:41,622] ERROR [pool-3-thread-1] [org.apache.kafka.connect.runtime.distributed.DistributedHerder] - Failed to reconfigure connector's tasks, retrying after backoff:
org.apache.kafka.connect.runtime.rest.errors.ConnectRestException: Failed to start RestClient: org.eclipse.jetty.io.ManagedSelector@78075cca id=0 keys=0 selected=0
        at org.apache.kafka.connect.runtime.rest.RestClient.httpRequest(RestClient.java:74)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$18.run(DistributedHerder.java:1034)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.RejectedExecutionException: org.eclipse.jetty.io.ManagedSelector@78075cca id=0 keys=0 selected=0
        at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:383)
        at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:143)
        at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:91)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:273)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.doStart(AbstractConnectorHttpClientTransport.java:64)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:244)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.apache.kafka.connect.runtime.rest.RestClient.httpRequest(RestClient.java:71)
        ... 6 more

После некоторого следа и ошибок создается впечатление, что когда задача создается на узле подключения лидера, она работает, и если она пытается создать задачу на узле подключения не лидера затем выдает ошибку выше. Хотя я не совсем уверен, верна ли моя гипотеза.

Затем, когда я принудительно соединяю кластер в автономный узел соединения, убивая процессы на других узлах кластера, соединители и задачи создаются без проблем.

Может кто-нибудь пролить свет на эту проблему, потому что в настоящее время я не могу использовать Kafka connect в режиме кластера.

Ценю любые идеи и предложения.

1 Ответ

0 голосов
/ 28 февраля 2020

После некоторого следа и ошибок создается впечатление, что когда задача создается на узле подключения лидера, она работает, и если она пытается создать задачу на узле подключения не лидера, то выдает вышеуказанную ошибку.

Я не совсем уверен, верна ли моя гипотеза.

Это так.

Вам необходимо настроить rest.advertised.listener работников Connect так, чтобы они знали друг о друге (объявить IP-адрес или DNS-имя в сети) в дополнение к listeners=HTTP://0.0.0.0:8083

https://kafka.apache.org/documentation/#connectconfigs

...