Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Information Provided
-
2.2.0
-
None
-
None
Description
When Kafka does log compaction offsets often end up with gaps, meaning the next requested offset will be frequently not be offset+1. The logic in KafkaSourceRDD & CachedKafkaConsumer assumes that the next offset will always be just an increment of 1 .If not, it throws the below exception:
"Cannot fetch records in [5589, 5693) (GroupId: XXX, TopicPartition:XXXX). Some data may have been lost because they are not available in Kafka any more; either the data was aged out by Kafka or the topic may have been deleted before all the data in the topic was processed. If you don't want your streaming query to fail on such cases, set the source option "failOnDataLoss" to "false". "
FYI: This bug is related to https://issues.apache.org/jira/browse/SPARK-17147
Attachments
Issue Links
- relates to
-
SPARK-17147 Spark Streaming Kafka 0.10 Consumer Can't Handle Non-consecutive Offsets (i.e. Log Compaction)
- Resolved
-
SPARK-24067 Backport SPARK-17147 to 2.3 (Spark Streaming Kafka 0.10 Consumer Can't Handle Non-consecutive Offsets (i.e. Log Compaction))
- Resolved
- links to