如何配置kafka以在超过log.retention.bytes时回收磁盘空间?

问题描述:

我设置了log.retention.bytes=1073741824,retention.bytes=1073741824,​​和log.cleanup.policy=delete,但现在磁盘使用量增长到13GB。如何配置kafka以在超过log.retention.bytes时回收磁盘空间?

我可以配置kafka回收磁盘空间吗?

log.retention.bytes是每个主题分区,但我觉得目前的文档看起来很混乱。

老卡夫卡文档0.8.2的描述看起来很清楚。 (https://kafka.apache.org/082/documentation.html

要保留在日志中的每个主题分区的数据量。请注意,这是每个分区的限制数,因此可以乘以分区数来获取该主题保留的总数据。

所以,你应该设置log.retention.bytesTARGET_DISK_SIZE/NUM_OF_TOPIC_PARTITIONS_IN_EACH_NODE

我认为这并不直观,尤其是当群集有多个主题或某些可能性需要缩放时。所以我个人更喜欢通过控制保留,并在最后的手段中使用log.retention.bytes

+0

我的分区是3,所以它仍然不回收磁盘空间。 – Leon

+0

@Leon您是否检查过日志段大小?因此,当您检查$ KAFKA_LOG_DIR/$ TOPIC- $ partition /中的文件时,应该有多个'.log'文件通过保留来旋转日志。 –