web-dev-qa-db-fra.com

Erreur de création de sujets Kafka: le facteur de réplication est supérieur à celui des courtiers disponibles.

J'essaie de créer des sujets dans Kafka en suivant le guide sur le site Web d'Apache Kafka via la ligne de commande .

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Je reçois l'erreur comme suit:

Error while executing topic command replication factor: 1 larger than available
brokers: 0
kafka.admin.AdminOperationException: replication factor: 1 larger than available
 brokers: 0
        at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:171)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:55)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)

[2015-10-13 14:25:38,607] INFO Processed session termination for sessionid: 0x15
06056566d0004 (org.Apache.zookeeper.server.PrepRequestProcessor)
[2015-10-13 14:25:38,608] INFO Closed socket connection for client /127.0.0.1:33
391 which had sessionid 0x1506056566d0004 (org.Apache.zookeeper.server.NIOServer
Cnxn)

Comment puis-je résoudre le problème? Toute bonne documentation pour commencer avec ça? Merci !!

24
Nicole

On dirait que votre serveur n'est pas démarré, vérifiez si les journaux

Tuer le processus

Sudo fuser -k 2181/tcp

courir gardien de zoo 

bin/zookeeper-server-start.sh config/zookeeper.properties

Run Kafka

bin/kafka-server-start.sh config/server.properties  ' 
16
vaquar khan

Si j'étais vous, j'essaierais ce code: 

bin/kafka-topics.sh --create --zookeeper localhost: 2181/kafka --replication-factor 1 --partitions 1 - test topique

Si vous utilisez un cluster où zookeeper est réparti sur 3 nœuds, vous devez remplacer localhost:2181/kafka par direccion1:2181,direction2:2181,direction3:2181/kafka

7
Anxo P

Il est clairement indiqué que 0 courtier est disponible. Commencer un courtier par 

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

basez-vous sur le tutoriel Apache Kafka puis essayez 

4
vasa.v03

J'ai le même problème.Je résous le problème.Je pense que la raison en est qu'il n'y a pas de démarrage en arrière-plan .

bin/kafka-server-start.sh config/server.properties &
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test &
2
chunbo

Votre Zookeeper ne peut voir aucun courtier Kafka.Essayez de vous connecter à votre console Zookeepr: bin/zkCli.sh -server localhost:2181exécutez [zk: localhost:2181(CONNECTED) 2] ls /brokers/ids sur la console. Il ne doit pas y avoir de courtier. Vous devez redémarrer tous vos courtiers Kafka et vérifier le journal de processus kafka. Parfois, même lorsque le processus est en cours d'exécution (ps -ef | grep kafka), il peut ne pas avoir démarré complètement, car Zookeeper est incapable de le voir. J'ai eu le même problème avec Apache Kafka distribution 0.11.0.

1
Binita Bharati

Dans mon cas, config/server.properties:

zookeeper.connect=localhost:2181

Mais je crée un sujet comme celui-ci:

$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test

Ensuite, j'ai eu ce problème.

Je résous ce problème en fixant la commande create topic comme ci-dessous:

$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Vous devez vous assurer que l'option --zookeeper est identique à zookeeper.connect dans config/server.properties.

0
iengchen

Essayez d'ajouter dans votre serverwith:

delete.topic.enable=true
0
Enrique Zetina

Il y a probablement des restes de zookeeper sur votre serveur lors de l'un des déploiements précédents. Répertoriez les pods, conteneurs, processus, etc. et vérifiez leur âge/heure de début pour les repérer.

0
imriss

Le même scénario que j'ai rencontré après avoir supprimé le seul sujet que j'avais créé.

La façon de le résoudre a été mise Kafka et Zookeeper vers le bas, paramètres Kafka mis à jour (fichier server.properties) où j'ajoute le paramètre suivant

delete.topic.enable=true

fichier sauvegardé, activez Zookeeper et Kafka et tout se déroule normalement.

0
nano

Dans mon cas, l'erreur est due au fait que j'ai commencé à créer des sujets avant que le gardien de zoo ne soit disponible. Depuis que j'ai tout fait dans un script, l'introduction d'une latence avant la création de sujets m'a aidé. Si votre port client zookeeper est 2181, vous pouvez vérifier la disponibilité de vos courtiers en:

echo dump | nc zookeeper 2181 | grep brokers
0

assurez-vous que le serveur Kafka a démarré correctement. Si vous utilisez le paramètre -dameon pour démarrer le serveur kafka en tant que démon. Essayez de l'enlever et de voir s'il y a des erreurs lors du démarrage. 

Le problème que j'ai rencontré s'est avéré être un problème d'accès aux fichiers, l'utilisateur exécutant kafka n'ayant pas accès au répertoire de journal que j'ai configuré. Après avoir accordé l'accès, cela fonctionne!

0
Mingliang