У нас проблема с одним из наших кластеров kafka (Kafka версия 2.2.1).Некоторые разделы __consumer_offsets не очищаются и имеют размер 10 с ГБ (обычные - 10 МБ).
В LogCleaner упоминается следующее:
[2019-06-17 12:27:26,147] DEBUG Finding range of cleanable offsets for log=__consumer_offsets-13 topicPartition=__consumer_offsets-13. Last clean offset=Some(4546182967) now=1560774446127 => firstDirtyOffset=4546182967 firstUncleanableOffset=4737493473 activeSegment.baseOffset=5008571978 (kafka.log.LogCleanerManager$)
Итак, согласноLogCleaner, смещение 4737493473 не подлежит очистке.Это действительно старое смещение, хотя мы посмотрели дальше и обнаружили это в последних файлах * .snapshot для этого раздела:
/usr/kafka/bin/kafka-dump-log.sh --files /data/__consumer_offsets-13/00000000005012457913.snapshot | grep 4737493473
producerId: 574024 producerEpoch: 24 coordinatorEpoch: 114 currentTxnFirstOffset: Some(4737493473) firstSequence: 0 lastSequence: 0 lastOffset: 4737493473 offsetDelta: 0 timestamp: 1558689306384
Так что это смещение, похоже, является частью текущей транзакции.Мой вопрос: что мы можем сделать, чтобы очиститель бревен перешел это смещение?Можем ли мы как-нибудь вручную закрыть эту транзакцию, удалить ее или что-то еще?
С наилучшими пожеланиями