手动关闭旧的Kafka交易

时间:2019-06-18 07:32:10

标签: apache-kafka transactions

我们的一个kafka集群(Kafka版本2.2.1)存在问题。某些__consumer_offsets分区没有清理干净,大小为10s GB(正常的大小为10s MB)。

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

因此,抵消似乎是正在进行的交易的一部分。我的问题是,我们该怎么做才能使原木清理器越过此偏移量?我们能否以某种方式手动关闭该交易,将其删除或进行其他操作?

最好的问候

0 个答案:

没有答案