2014-11-24 6 views
11

Ich probiere die kafka-console-producer.sh aus. Ich tippe etwas in die Konsole und drücke Enter und ich bekomme so viele Stack-Spuren auf die Konsole. Alle Hinweise schätzen.Ausnahme läuft kafka-console-producer.sh (0.8.1.1)

Der Befehl an den Hersteller zu starten ist:

./bin/kafka-console-producer.sh --broker-list localhost:2181 --topic test 

Dann habe ich einige Zeichenfolge eingeben und drücken Sie die Eingabetaste und die folgenden in der Konsole angezeigt.

[2014-11-24 15:27:36,022] ERROR fetching topic metadata for topics [Set(test)] from broker [ArrayBuffer(id:0,host:localhost,port:2181)] failed (kafka.utils.Utils$) 
kafka.common.KafkaException: fetching topic metadata for topics [Set(test)] from broker [ArrayBuffer(id:0,host:localhost,port:2181)] failed 
    at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:67) 
    at kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82) 
    at kafka.producer.async.DefaultEventHandler$$anonfun$handle$2.apply$mcV$sp(DefaultEventHandler.scala:78) 
    at kafka.utils.Utils$.swallow(Utils.scala:167) 
    at kafka.utils.Logging$class.swallowError(Logging.scala:106) 
    at kafka.utils.Utils$.swallowError(Utils.scala:46) 
    at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:78) 
    at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) 
    at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) 
    at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) 
    at scala.collection.immutable.Stream.foreach(Stream.scala:547) 
    at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) 
    at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) 
Caused by: java.io.EOFException: Received -1 when reading from channel, socket has likely been closed. 
    at kafka.utils.Utils$.read(Utils.scala:376) 
    at kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:54) 
    at kafka.network.Receive$class.readCompletely(Transmission.scala:56) 
    at kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29) 
    at kafka.network.BlockingChannel.receive(BlockingChannel.scala:100) 
    at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:74) 
    at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:71) 
    at kafka.producer.SyncProducer.send(SyncProducer.scala:112) 
    at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:53) 
    ... 12 more 

Ich sehe eine Warnung auf der zookeeper Konsole auch:

WARN Exception causing close of session 0x0 due to java.io.EOFException (org.apache.zookeeper.server.NIOServerCnxn)  

habe ich mein Thema folgendes Setup:

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

und ich bin in der Lage mein Thema zur Liste:

./bin/kafka-topics.sh --list --zookeeper localhost:2181 

Antwort

18

Ihre broker-list Argument verweist auf Zookeeper anstelle des tatsächlichen Brokers. Die richtige Verwendung wäre:

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 

vorausgesetzt, Ihr Makler auf Port 9092 (Standard).

Sie können here verweisen für weitere Informationen (Ihr Problem in Step 4: Send some messages beschrieben wird)

+0

Können wir konfigurieren diesen Port 9092 auf die Broker läuft verbinden? Ich konnte dafür keine entsprechende Dokumentation finden. – Vinit89

+1

@ Vinit89, ja, es ist in 'config/server.properties' namens' port' – serejja

2

Dies ist, weil Sie Ihre Verbraucher in einer falschen Weise beginnen. Wenn Sie die official documentation überprüfen wird, können Sie sehen, dass Sie sich:

Start Zookeper

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

Start Kafka

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

ein Thema

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

Produziere Nachrichten erstellen für ein Thema

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 

Beachten Sie den Unterschied: Sie eine Verbindung zookeper (Port 2181) müssen Sie einen Makler (Port 9092)

Verwandte Themen