We have 3 Zookeepers and 3 Kafka Brokers, version 0.8.0.

I gracefully shutdown one of the kafka brokers.

Question 1: Should I wait some time before starting the broker back up, or can I restart it as soon as possible? In other words, do I have to wait for the other brokers to "re-balance (or whatever they do)" before starting it back up?

Question 2: Every once in a while, I get the following exception when the kafka broker is starting up. Is this bad? Searching around the newsgroups, I could not get a definitive answer. Example:
http://grokbase.com/t/kafka/users/13cq54bx5q/understanding-offsetoutofrangeexceptions
http://grokbase.com/t/kafka/users/1413hp296y/trouble-recovering-after-a-crashed-broker

Here is the exception:
[2014-04-08 00:02:40,555] ERROR [KafkaApi-3] Error when processing fetch request for partition [KeyPairGenerated,0] offset 514 from consumer with correlation id 85 (kafka.server.KafkaApis) kafka.common.OffsetOutOfRangeException: Request for offset 514 but we only have log segments in the range 0 to 0.
    at kafka.log.Log.read(Log.scala:429)
at kafka.server.KafkaApis.kafka$server$KafkaApis$$readMessageSet(KafkaApis.scala:388) at kafka.server.KafkaApis$$anonfun$kafka$server$KafkaApis$$readMessageSets$1.apply(KafkaApis.scala:334) at kafka.server.KafkaApis$$anonfun$kafka$server$KafkaApis$$readMessageSets$1.apply(KafkaApis.scala:330) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.immutable.Map$Map1.foreach(Map.scala:105)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.Map$Map1.map(Map.scala:93)
at kafka.server.KafkaApis.kafka$server$KafkaApis$$readMessageSets(KafkaApis.scala:330)
    at kafka.server.KafkaApis.handleFetchRequest(KafkaApis.scala:296)
    at kafka.server.KafkaApis.handle(KafkaApis.scala:66)
    at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:42)
    at java.lang.Thread.run(Thread.java:722)

And in the controller.log, I see every once in a while something like:

controller.log.2014-04-01-04:[2014-04-01 04:42:41,713] WARN [OfflinePartitionLeaderSelector]: No broker in ISR is alive for [KeyPairGenerated,0]. Elect leader 3 from live brokers 3. There's potential data loss. (kafka.controller.OfflinePartitionLeaderSelector)

(Which I did via: grep "data loss" *)

I'm not a programmer: I am the admin for these machines, and I just want to make sure everything is cool.
Oh, the server.properties has:
default.replication.factor=3

Thanks,

Alex

Reply via email to