4

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

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

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

   {
   "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"
      }
   ]
}
4

1 回答 1

1

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

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

编辑:

我还注意到,这个问题不时发生在我的 Kafka 节点上,使整个集群处于不可用状态。重新启动有问题的节点可以解决问题。

于 2018-01-31T08:30:54.453 回答