Je fais le Kafka Quickstart pour Kafka 0.9.0.0.
J'ai l'écoute de zookeeper à localhost:2181
parce que j'ai couru
bin/zookeeper-server-start.sh config/zookeeper.properties
J'ai un seul courtier qui écoute à localhost:9092
parce que j'ai couru
bin/kafka-server-start.sh config/server.properties
J'ai un producteur postant sur le sujet "test" parce que j'ai couru
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
yello
is this thing on?
let's try another
gimme more
Lorsque j’exécute l’ancien consommateur d’API, il fonctionne en exécutant
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Cependant, lorsque je lance le nouveau consommateur d'API, je ne reçois rien quand je cours
bin/kafka-console-consumer.sh --new-consumer --topic test --from-beginning \
--bootstrap-server localhost:9092
Est-il possible de s'abonner à un sujet à partir du consommateur de console en utilisant la nouvelle API? Comment puis-je le réparer?
Je suis sous MAC Je suis confronté au même problème de consommateur de console ne consommant aucun message lorsque la commande est utilisée
kafka-console-consumer --bootstrap-server localhost:9095 --from-beginning --topic my-replicated-topic
Mais quand j'ai essayé avec
kafka-console-consumer --bootstrap-server localhost:9095 --from-beginning --topic my-replicated-topic --partition 0
Il énumère avec joie les messages envoyés. Est-ce un bug dans Kafka 1.10.11?
Pour moi, la solution décrite dans ce fil a fonctionné - https://stackoverflow.com/a/51540528/7568227
Vérifier si
offsets.topic.replication.factor
(ou probablement d’autres paramètres de configuration liés à la réplication) n’est pas supérieur au nombre de courtiers. C'était le problème dans mon cas.
Il n'y avait plus besoin d'utiliser --partition 0 après ce correctif.
Sinon, je vous recommande de suivre la procédure de débogage décrite dans le fil de discussion mentionné.
Je viens de rencontrer ce problème et la solution consistait à supprimer /brokers
dans zookeeper et à redémarrer les nœuds kafka.
bin/zookeeper-Shell <zk-Host>:2181
et alors
rmr /brokers
Je ne sais pas pourquoi cela résout le problème.
Lorsque j'ai activé la journalisation de débogage, j'ai vu ce message d'erreur maintes et maintes fois chez le consommateur:
2017-07-07 01:20:12 DEBUG AbstractCoordinator:548 - Sending GroupCoordinator request for group test to broker xx.xx.xx.xx:9092 (id: 1007 rack: null)
2017-07-07 01:20:12 DEBUG AbstractCoordinator:559 - Received GroupCoordinator response ClientResponse(receivedTimeMs=1499390412231, latencyMs=84, disconnected=false, requestHeader={api_key=10,api_version=0,correlation_id=13,client_id=consumer-1}, responseBody={error_code=15,coordinator={node_id=-1,Host=,port=-1}}) for group test
2017-07-07 01:20:12 DEBUG AbstractCoordinator:581 - Group coordinator lookup for group test failed: The group coordinator is not available.
2017-07-07 01:20:12 DEBUG AbstractCoordinator:215 - Coordinator discovery failed for group test, refreshing metadata
Votre hôte local est le foo here . Si vous remplacez le mot localhost par le nom d’hôte actuel, cela devrait fonctionner.
comme ça:
producteur
./bin/kafka-console-producer.sh --broker-list \
sandbox-hdp.hortonworks.com:9092 --topic test
consommateur:
./bin/kafka-console-consumer.sh --topic test --from-beginning \
--bootstrap-server bin/kafka-console-consumer.sh --new-consumer \
--topic test --from-beginning \
--bootstrap-server localhost:9092
Ce problème a également un impact sur l’ingestion des données du kafka à l’aide de Flume et sur l’enfoncement des données vers HDFS.
Pour résoudre le problème ci-dessus:
Il n'y a aucun problème en ce qui concerne la version du client kafka et la version de scala que nous utilisons le cluster. Zookeeper peut avoir des informations erronées sur les hôtes de courtier.
Pour vérifier l'action:
Créer un sujet dans kafka.
$ kafka-console-consumer --bootstrap-server slavenode01.cdh.com:9092 --topic rkkrishnaa3210 --from-beginning
Ouvrez un canal de producteur et envoyez-lui des messages.
$ kafka-console-producer --broker-list slavenode03.cdh.com:9092 --topic rkkrishnaa3210
Ouvrez un canal consommateur pour utiliser le message d'un sujet spécifique.
$ kafka-console-consumer --bootstrap-server slavenode01.cdh.com:9092 --topic rkkrishnaa3210 --from-beginning
Pour tester cela depuis le canal:
Config agent de flume:
rk.sources = source1
rk.channels = channel1
rk.sinks = sink1
rk.sources.source1.type = org.Apache.flume.source.kafka.KafkaSource
rk.sources.source1.zookeeperConnect = ip-20-0-21-161.ec2.internal:2181
rk.sources.source1.topic = rkkrishnaa321
rk.sources.source1.groupId = flume1
rk.sources.source1.channels = channel1
rk.sources.source1.interceptors = i1
rk.sources.source1.interceptors.i1.type = timestamp
rk.sources.source1.kafka.consumer.timeout.ms = 100
rk.channels.channel1.type = memory
rk.channels.channel1.capacity = 10000
rk.channels.channel1.transactionCapacity = 1000
rk.sinks.sink1.type = hdfs
rk.sinks.sink1.hdfs.path = /user/ce_rk/kafka/%{topic}/%y-%m-%d
rk.sinks.sink1.hdfs.rollInterval = 5
rk.sinks.sink1.hdfs.rollSize = 0
rk.sinks.sink1.hdfs.rollCount = 0
rk.sinks.sink1.hdfs.fileType = DataStream
rk.sinks.sink1.channel = channel1
Exécuter l'agent de canal:
flume-ng agent --conf . -f flume.conf -Dflume.root.logger=DEBUG,console -n rk
Observez les journaux du consommateur que le message de la rubrique est écrit en HDFS.
18/02/16 05:21:14 INFO internals.AbstractCoordinator: Successfully joined group flume1 with generation 1
18/02/16 05:21:14 INFO internals.ConsumerCoordinator: Setting newly assigned partitions [rkkrishnaa3210-0] for group flume1
18/02/16 05:21:14 INFO kafka.SourceRebalanceListener: topic rkkrishnaa3210 - partition 0 assigned.
18/02/16 05:21:14 INFO kafka.KafkaSource: Kafka source source1 started.
18/02/16 05:21:14 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SOURCE, name: source1: Successfully registered new MBean.
18/02/16 05:21:14 INFO instrumentation.MonitoredCounterGroup: Component type: SOURCE, name: source1 started
18/02/16 05:21:41 INFO hdfs.HDFSDataStream: Serializer = TEXT, UseRawLocalFileSystem = false
18/02/16 05:21:42 INFO hdfs.BucketWriter: Creating /user/ce_rk/kafka/rkkrishnaa3210/18-02-16/FlumeData.1518758501920.tmp
18/02/16 05:21:48 INFO hdfs.BucketWriter: Closing /user/ce_rk/kafka/rkkrishnaa3210/18-02-16/FlumeData.1518758501920.tmp
18/02/16 05:21:48 INFO hdfs.BucketWriter: Renaming /user/ce_rk/kafka/rkkrishnaa3210/18-02-16/FlumeData.1518758501920.tmp to /user/ce_rk/kafka/rkkrishnaa3210/18-02-16/FlumeData.1518758501920
18/02/16 05:21:48 INFO hdfs.HDFSEventSink: Writer callback called.
Pouvez-vous s'il vous plaît essayer comme ça:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
J'ai eu le même problème, maintenant j'ai compris.
Lorsque vous utilisez --zookeeper, il est censé être fourni avec l'adresse de zookeeper en tant que paramètre.
Lorsque vous utilisez --bootstrap-server, il est censé être fourni avec l'adresse du courtier en paramètre.
Dans mon cas, cela n’a pas fonctionné en utilisant l’une ou l’autre des approches, puis j’ai également augmenté le niveau de journalisation àDEBUGà config/log4j.properties
, a lancé le consommateur de console.
./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic MY_TOPIC
Puis obtenu le journal ci-dessous
[2018-03-11 12:11:25,711] DEBUG [MetadataCache brokerId=10] Error while fetching metadata for MY_TOPIC-3: leader not available (kafka.server.MetadataCache)
Le point ici est que j'ai deux noeuds kafka mais l'un est en panne, pour une raison quelconque, le consommateur de kafka-console ne consommera pas s'il existe une partition non disponible car le noeud est en panne (la partition 3 dans ce cas). Cela n'arrive pas dans ma candidature.
Les solutions possibles sont
Exécutez la commande ci-dessous à partir de bin:
./kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
"test" est le nom du sujet
Utilisez ceci: bin/kafka-console-consumer.sh --hôte-serveur-de-démarrage-serveur: 9092 - test d'activation --de début
Remarque: Supprimez "--new-consumer" de votre commande.
Pour référence, voir ici: https://kafka.Apache.org/quickstart
Je rencontrais le même problème sur mon Mac… .. J'ai vérifié les journaux et trouvé l'erreur suivante.
Number of alive brokers '1' does not meet the required replication factor '3' for the offsets topic (configured via 'offsets.topic.replication.factor').
This error can be ignored if the cluster is starting up and not all brokers are up yet.
Cela peut être corrigé en modifiant le facteur de réplication en 1. Ajoutez la ligne suivante dans server.properties et redémarrez Kafka/Zookeeper.
offsets.topic.replication.factor=1