如何在server.properties中安全删除旧kafka日志

6ju8rftf  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(657)

我用的是Kafka2.3版,我想删除老Kafka日志
有两个文件夹
log.dirs=/var/www/html/zookeeper_1/zookeeper_data_1 kafka_2.10-0.8.2.2/logs 两个文件夹有什么区别,我想删除旧日志?

ulydmbyx

ulydmbyx1#

一个是zookeeper数据,另一个是kafka 0.8.2.2数据,与kafka 2.3不直接兼容
你可以从后者中删除片段,但是如果你这样做的话,它可能会破坏主题,所以你应该让Kafka自己清理一下

dw1jzc5e

dw1jzc5e2#

我认为删除旧日志最安全的方法是正确配置保留策略。
在Kafka,有两种类型的日志保留;尺寸和时间保持。前者是由 log.retention.bytes 而后者 log.retention.hours .
假设你想要一个 delete 清理策略,您需要配置以下参数

log.cleaner.enable=true
log.cleanup.policy=delete

然后您需要考虑 log.retention.bytes , log.segment.bytes 以及 log.retention.check.interval.ms . 为此,您必须考虑以下因素: log.retention.bytes 是主题的单个分区的最低保证,这意味着如果 log.retention.bytes 对于512mb,这意味着您的磁盘中总是有512mb的数据(每个分区)。
再说一次,如果你 log.retention.bytes 512mb和 log.retention.check.interval.ms 到5分钟(这是默认值),在触发保留策略之前,您至少有512mb的数据+5分钟窗口内生成的数据大小。
磁盘上的主题日志由段组成。段大小取决于 log.segment.bytes 参数。为了 log.retention.bytes=1GB 以及 log.segment.bytes=512MB ,则磁盘上始终最多有3个段(2个段达到保留期,第3个段将是当前写入数据的活动段)。
最后,您应该进行计算,并计算Kafka日志在磁盘上任何给定时间可能保留的最大大小,并相应地调整上述参数。我还建议您设置一个时间保留策略,并配置 log.retention.hours 相应地。如果两天后你不再需要你的数据了,那就设置 log.retention.hours=48 .

相关问题