2014-11-24 17 views
11

Sto provando il kafka-console-producer.sh. Digito qualcosa sulla console e premo invio e ottengo tonnellate di tracce di stack sulla console in questo modo. Apprezzo qualsiasi suggerimento.Eccezione in esecuzione kafka-console-producer.sh (0.8.1.1)

Il comando per lanciare il produttore è:

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

Poi ho digitare una stringa e premere Invio e vedere quanto segue nella console.

[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 

vedo un avvertimento sulla console Zookeeper così:

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

ho usato quanto segue per impostare il mio argomento:

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

e sono in grado di elencare mio argomento:

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

risposta

18

tuoL'argomentosta puntando a Zookeeper invece del broker vero e proprio. L'utilizzo corretto sarebbe:

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

supponendo che il vostro broker viene eseguito sulla porta 9092 (default).

è possibile fare riferimento here per ulteriori informazioni (il problema è descritto in Step 4: Send some messages)

+0

possiamo configurare questa porta 9092 sulle piste da quale broker? Non ho trovato la documentazione corrispondente per farlo. – Vinit89

+1

@ Vinit89, sì, è in 'config/server.properties' chiamato' port' – serejja

2

Questo perché si avvia il consumatore in modo sbagliato. Se si controlla il official documentation, si può vedere che si deve:

inizio Zookeper

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

inizio Kafka

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

creare un argomento

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

messaggi iniziano a produrre per un argomento

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

notare la differenza: ci si connette a zookeper (porta 2181) è necessario per la connessione a un broker (porta 9092)

Problemi correlati