Kafka Connect:“此工作程序中已经存在任务”

时间:2018-09-03 11:00:52

标签: apache-kafka apache-kafka-connect

我看到了连接器的状态,但有这个异常

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 :(得分:0)

我们看到这个问题在单节点分布式Connect群集(Kafka的最新版本2.0.0)中发生了两次。我们通过配置有1个任务的Confluent JDBC Sink看到了这一点。

查看源代码-和堆栈跟踪-似乎org.apache.kafka.connect.runtime.Workerorg.apache.kafka.connect.runtime.distributed.DistributedHerder不会以相同的方式加载任务状态。工人以某种方式已经拥有任务0,但DistributedHerder想要再次添加它。

任务的重新启动以及连接器的重新启动均无济于事。相反,在我们的情况下,重新启动Connect流程可以解决该问题。