Cela fait deux semaines que j'essaie de le faire. J'utilise le cluster Kafka sur des machines distinctes de celles de mes nœuds de connexion. Je ne parviens pas à me connecter correctement. Je peux lire et écrire à Kafka sans problème. Zookeeper semble bien fonctionner.
Je lance connect:
$ bin/connect-distributed connect-distributed.properties
Connect continue de boucler avec cette erreur:
[2018-08-21 15:45:12,161] INFO [Worker clientId=c1, groupId=connect-cluster] Discovered group coordinator 172.25.1.2:9092 (id: 2147483645 rack: null) (org.Apache.kafka.clients.consumer.internals.AbstractCoordinator:677)
[2018-08-21 15:45:12,163] INFO [Worker clientId=c1, groupId=connect-cluster] (Re-)joining group (org.Apache.kafka.clients.consumer.internals.AbstractCoordinator:509)
[2018-08-21 15:45:12,165] INFO [Worker clientId=c1, groupId=connect-cluster] Group coordinator 172.25.1.2:9092 (id: 2147483645 rack: null) is unavailable or invalid, will attempt rediscovery (org.Apache.kafka.clients.consumer.internals.AbstractCoordinator:729)
[2018-08-21 15:45:12,266] INFO [Worker clientId=c1, groupId=connect-cluster] Discovered group coordinator 172.25.40.219:9092 (id: 2147483645 rack: null) (org.Apache.kafka.clients.consumer.internals.AbstractCoordinator:677)
[2018-08-21 15:45:12,267] INFO [Worker clientId=c1, groupId=connect-cluster] Group coordinator 172.25.1.2:9092 (id: 2147483645 rack: null) is unavailable or invalid, will attempt rediscovery (org.Apache.kafka.clients.consumer.internals.AbstractCoordinator:729)
Voici à quoi ressemble mon fichier connect-distributed.properties:
bootstrap.servers=172.25.1.2:9092,172.25.1.3:9092,172.25.1.4:9092
group.id=connect-cluster
key.converter=org.Apache.kafka.connect.json.JsonConverter
value.converter=org.Apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
offset.storage.replication.factor=3
offset.storage.partitions=3
config.storage.topic=connect-configs
config.storage.replication.factor=3
status.storage.topic=connect-status
status.storage.replication.factor=3
status.storage.partitions=3
offset.flush.interval.ms=10000
rest.Host.name=172.25.1.5
rest.port=8083
heartbeat.interval.ms=3000
session.timeout.ms=30000
security.protocol=PLAINTEXT
client.id=c1
plugin.path=/usr/share/Java
La rubrique __Consumer_offsets ressemble à ceci:
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic __consumer_offsets
Topic:__consumer_offsets PartitionCount:50 ReplicationFactor:3 Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
Topic: __consumer_offsets Partition: 0 Leader: 2 Replicas: 1,2,3 Isr: 3,2
Topic: __consumer_offsets Partition: 1 Leader: 2 Replicas: 1,2,3 Isr: 3,2
Topic: __consumer_offsets Partition: 2 Leader: 2 Replicas: 1,2,3 Isr: 3,2
Topic: __consumer_offsets Partition: 3 Leader: 1 Replicas: 1 Isr: 1
Topic: __consumer_offsets Partition: 4 Leader: 2 Replicas: 2 Isr: 2.... etc
Après avoir écrit un connecteur dans Go, je suis tombé sur le même problème. J'ai été obligé de le résoudre moi-même.
Lorsqu'un connecteur se connecte à kafka, il écrit automatiquement dans les rubriques et dans __offset_topics
. Lorsqu'un connecteur tombe en panne, il laisse une trace de lui-même dans ces tables en tant que coordinateur. Lorsqu'un nouveau connecteur démarre, il trouve l'enregistrement dans la table et tente de communiquer avec le coordinateur. Le coordinateur ne répond pas et le connecteur ne fonctionne jamais.
Vous pouvez résoudre ce problème de deux manières: supprimez toutes les rubriques (connect-configs
, connect-offsets
, connect-status
, __offset_topics
) et redémarrez le cluster. L’autre méthode consiste à supprimer le coordinateur des rubriques, ce que je ne sais pas actuellement comment exécuter.
ajoutez le nom d'hôte de tous les courtiers kafka à votre fichier/etc/hosts et réessayez