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 !!
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 '
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
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
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 &
Votre Zookeeper ne peut voir aucun courtier Kafka.Essayez de vous connecter à votre console Zookeepr: bin/zkCli.sh -server localhost:2181
exé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.
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
.
Essayez d'ajouter dans votre serverwith:
delete.topic.enable=true
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.
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.
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
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!