我看到了连接器的状态,但有这个异常
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"}
我不知道这是什么。谢谢
答案 0 :(得分:0)
我们看到这个问题在单节点分布式Connect群集(Kafka的最新版本2.0.0)中发生了两次。我们通过配置有1个任务的Confluent JDBC Sink看到了这一点。
查看源代码-和堆栈跟踪-似乎org.apache.kafka.connect.runtime.Worker
和org.apache.kafka.connect.runtime.distributed.DistributedHerder
不会以相同的方式加载任务状态。工人以某种方式已经拥有任务0,但DistributedHerder想要再次添加它。
任务的重新启动以及连接器的重新启动均无济于事。相反,在我们的情况下,重新启动Connect流程可以解决该问题。