2016-09-21 79 views
3

我使用的是從匯合3.0.0和錯誤kafka-avro-console-producer當我執行下面出現:卡夫卡的Avro控制檯製片快速啓動失敗

./bin/kafka-avro-console-producer --broker-list localhost:9092 --topic test1234 --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]}' 
SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Users/tonydao/dev/bin/confluent-3.0.0/share/java/kafka-serde-tools/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Users/tonydao/dev/bin/confluent-3.0.0/share/java/confluent-common/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Users/tonydao/dev/bin/confluent-3.0.0/share/java/schema-registry/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 
{"f1":"value1"} 
{"f1":"value2"} 

org.apache.kafka.common.errors.SerializationException: Error deserializing json to Avro of schema {"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]} 
Caused by: java.io.EOFException 
    at org.apache.avro.io.JsonDecoder.advance(JsonDecoder.java:138) 
    at org.apache.avro.io.JsonDecoder.readString(JsonDecoder.java:219) 
    at org.apache.avro.io.JsonDecoder.readString(JsonDecoder.java:214) 
    at org.apache.avro.io.ResolvingDecoder.readString(ResolvingDecoder.java:201) 
    at org.apache.avro.generic.GenericDatumReader.readString(GenericDatumReader.java:363) 
    at org.apache.avro.generic.GenericDatumReader.readString(GenericDatumReader.java:355) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:157) 
    at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193) 
    at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142) 
    at io.confluent.kafka.formatter.AvroMessageReader.jsonToAvro(AvroMessageReader.java:189) 
    at io.confluent.kafka.formatter.AvroMessageReader.readMessage(AvroMessageReader.java:157) 
    at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:55) 
    at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala) 
+0

你有沒有解決這個問題?我有與上面完全相同的問題。我有所有的服務運行。我輸入: {「f1」:「value1」} 然後收到異常。我也有控制檯消費者運行,它從來沒有得到消息。這是我第一次嘗試kafka,並從未下載過其他版本。我嘗試過多種價值觀並試圖創造一個新話題。所有的都有相同的例外。 –

+0

這是一回,所以我現在不記得了。但是,在鍵入消息後,請不要按,而應該嘗試執行Ctrl + C。 – Glide

回答

2
  1. 請確保您正在運行的所有的所需服務(zookeeperkafka serverschema registry)僅來自合流kafka包。
  2. 你可能更早使用卡夫卡的一些其他版本在同一臺服務器上,並且可能需要清潔日誌目錄(/tmp/kafka是默認的)
  3. 確保你不打Enter沒有,因爲它被認爲是提供數據null並導致異常。
  4. 嘗試一個全新的主題