apache-kafka - 不一致的连接器状态 : ConnectException: Task already exists in this worker

标签 apache-kafka apache-kafka-connect confluent-platform debezium

我正在使用 Confluent Platform 3.2。在 3 台不同的 EC2 机器上运行 3 名工作人员。

我有一个连接器(debezium/MySQL 源代码),我将其删除并在几分钟后重新启动。但是由于以下错误,我无法成功启动连接器。连接器处于故障状态。我不得不重新启动 worker 来解决这个问题。

需要知道这是否是缓存的问题?如何在不重新启动工作器的情况下解决此问题。任何支持表示赞赏。

   {
   "name": "debezium-connector",
   "connector": {
      "state": "RUNNING",
      "worker_id": "xx.xx.xx.xxx:8083"
   },
   "tasks": [
      {
         "state": "FAILED",
         "trace": "org.apache.kafka.connect.errors.ConnectException: Task already exists in this worker: debezium-connector-0\n\tat org.apache.kafka.connect.runtime.Worker.startTask(Worker.java:308)\n\tat org.apache.kafka.connect.runtime.distributed.DistributedHerder.startTask(DistributedHerder.java:834)\n\tat org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1500(DistributedHerder.java:101)\n\tat org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:848)\n\tat org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:844)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\n",
         "id": 0,
         "worker_id": "xx.xx.xx.xxx:8083"
      }
   ]
}

最佳答案

唔。我遇到了同样的错误,然后我发现其中一台 Kafka 服务器的磁盘空间不足,因此 Kafka 集群无法正常运行。不知道这里的所有细节,但我希望 Connect 在 Kafka 中存储一些关于连接器和任务的信息,如果它没有正确响应,Kafka 仍然可以有关于旧任务的信息。

分享以防对其他人有帮助。

编辑:

我也注意到,this issue我的 Kafka 节点不时发生这种情况,使整个集群处于无法使用的状态。重新启动有问题的节点可以解决问题。

关于apache-kafka - 不一致的连接器状态 : ConnectException: Task already exists in this worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43802156/

相关文章:

apache-kafka - 使用单个 kafka 流从多个主题消费

messaging - Apache 卡夫卡 : consumer state

apache-kafka - Kafka Streams - 是否有可能减少由多个聚合创建的内部主题的数量

Spring Boot Java Kafka 配置,覆盖端口

amazon-web-services - 在 AWS ECS 上运行分布式 kafka 连接集群

apache-kafka - Kafka Connect JDBC 连接器 - 由于不可恢复的异常而退出 WorkerSinkTask

apache-kafka - -bash : kafka-server-start. sh:找不到命令

java - Kafka Connect - 文件源连接器错误

cassandra - 使用 AvroConverter 启动时出现 Kafka Connect 错误

java - 为什么静态类型语言需要 Avro 架构注册表?