Kafka Connect: «У этого работника уже есть задача» - PullRequest
0 голосов
/ 03 сентября 2018

Я вижу состояние моего разъема, и у меня есть это исключение

org.apache.kafka.connect.errors.ConnectException: Task already exists in this worker: *name of the connector*
        at org.apache.kafka.connect.runtime.Worker.startTask(Worker.java:365)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.startTask(DistributedHerder.java:857)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1600(DistributedHerder.java:109)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:871)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:867)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Когда я выполняю команду curl -s ip:8081/connectors/name of connector/tasks для просмотра списка задач соединителя, у меня появляется такой результат

{"error_code":404,"message":"HTTP 404 Not Found"}

Понятия не имею, что это. Спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Мы наблюдаем эту проблему пару раз в одном узле распределенном кластере Connect (последняя версия 2.0.0 от Kafka). Мы видим это с Confluent JDBC Sink, настроенным с 1 задачей.

Если посмотреть на источник - и трассировку стека - кажется, org.apache.kafka.connect.runtime.Worker и org.apache.kafka.connect.runtime.distributed.DistributedHerder не загружают состояние задачи одинаково. Каким-то образом у Worker уже есть задача 0, но DistributedHerder хочет добавить ее (снова).

Перезапуск задачи, а также перезапуск коннектора не помогли нам. Вместо этого перезапуск процесса Connect разрешил его в нашем случае.

...