如何配置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.bytes
由TARGET_DISK_SIZE/NUM_OF_TOPIC_PARTITIONS_IN_EACH_NODE
。
我认为这并不直观,尤其是当群集有多个主题或某些可能性需要缩放时。所以我个人更喜欢通过控制保留,并在最后的手段中使用log.retention.bytes
。
我的分区是3,所以它仍然不回收磁盘空间。 – Leon
@Leon您是否检查过日志段大小?因此,当您检查$ KAFKA_LOG_DIR/$ TOPIC- $ partition /中的文件时,应该有多个'.log'文件通过保留来旋转日志。 –