2017-05-05 2 views
3

J'utilise Confluent Platform 3.2. Exécution de 3 travailleurs sur 3 machines EC2 différentes.Etat de connecteur incohérent: ConnectException: une tâche existe déjà dans ce worker

J'avais un connecteur (source debezium/MySQL) que j'ai supprimé et j'ai recommencé après quelques minutes. Mais je n'ai pas pu démarrer le connecteur avec succès à cause de l'erreur ci-dessous. Le connecteur est à l'état défaillant. J'ai dû redémarrer les travailleurs pour régler le problème.

Besoin de savoir si c'est un problème avec la mise en cache? Comment résoudre ce problème sans redémarrer les travailleurs. Tout soutien est apprécié.

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

Même problème ici avec un autre connecteur. – eddyP23

Répondre

1

Hmm. J'ai eu la même erreur et puis j'ai trouvé que l'un des serveurs Kafka manquait d'espace disque, donc le cluster Kafka ne fonctionnait pas correctement. Je ne connais pas tous les détails ici, mais je pense que Connect stocke quelques informations sur les connecteurs et les tâches dans Kafka et si elle ne répond pas correctement, Kafka pourrait encore avoir des informations sur l'ancienne tâche.

Partage dans un cas qui aide quelqu'un d'autre.

EDIT:

J'ai aussi remarqué que this issue arrive à mes nœuds Kafka de temps en temps, ce qui porte l'ensemble du cluster à l'état inutilisable. Le redémarrage du nœud en difficulté résout les problèmes.