Was kafka.common.OffsetOutOfRangeException bedeutet

8

Ich versuche, Daten über Apache Kafka zu laden und bekomme ständig diesen Fehler:

  

kafka.common.OffsetOutOfRangeException: Offset 1003786 liegt außerhalb des Bereichs           bei kafka.log.Log $ .findRange (Log.scala: 46)           bei kafka.log.Log.read (Log.scala: 264)           bei kafka.server.KafkaRequestHandlers.kafka $ server $ KafkaRequestHandlers $$ readMessageSet (KafkaRequestHandlers.scala: 112)           bei kafka.server.KafkaRequestHandlers $$ anonfun $ 2.apply (KafkaRequestHandlers.scala: 101)           bei kafka.server.KafkaRequestHandlers $$ anonfun $ 2.apply (KafkaRequestHandlers.scala: 100)           bei scala.collection.TraversableLike $$ anonfun $ map $ 1.Anwendung (TraversableLike.scala: 206)           bei scala.collection.TraversableLike $$ anonfun $ map $ 1.Anwendung (TraversableLike.scala: 206)           bei scala.collection.IndexedSeqOptimized $ class.foreach (IndexedSeqOptimized.scala: 34)           bei scala.collection.mutable.ArrayOps.foreach (ArrayOps.scala: 34)           bei scala.collection.TraversableLike $ class.map (TraversableLike.scala: 206)           bei scala.collection.mutable.ArrayOps.map (ArrayOps.scala: 34)           bei kafka.server.KafkaRequestHandlers.handleMultiFetchRequest (KafkaRequestHandlers.scala: 100)           bei kafka.server.KafkaRequestHandlers $$ anonfun $ handlerFür $ 3.apply (KafkaRequestHandlers.scala: 40)           bei kafka.server.KafkaRequestHandlers $$ anonfun $ handlerFür $ 3.apply (KafkaRequestHandlers.scala: 40)           bei kafka.network.Processor.handle (SocketServer.scala: 296)           bei kafka.network.Processor.read (SocketServer.scala: 319)           bei kafka.network.Processor.run (SocketServer.scala: 214)           bei java.lang.Thread.run (Thread.java:724)

Was bedeutet diese Ausnahme und wie kann ich sie beheben?

    
Ris90 09.04.2014, 08:20
quelle

1 Antwort

13

OffsetOutOfRangeException gibt im Allgemeinen an, dass der Client einen Bereich angefordert hat, der auf dem Server nicht mehr verfügbar ist.
Dies könnte passieren, da das Themenprotokoll basierend auf der Aufbewahrungsrichtlinie in Ihrem Kafka-Setup nicht mehr existiert.
Wenn Sie SimpleConsumer verwenden, müssen Sie die OffsetOutOfRange-Exception in Ihrem Code behandeln. Im Idealfall sollte Ihr Consumer eine OffsetRequest ausgeben, um den aktuellsten / frühesten Offset zu erhalten, der derzeit auf dem Server verfügbar ist, und diesen dann in Ihrem FetchRequest (als Parameter) verwenden

    
user2720864 09.04.2014 09:32
quelle

Tags und Links