背景問題:
使用kafka的路上踩過不少坑,其中一個就是在測試環境使用kafka一陣子以后,發現其日志目錄變的很大,占了磁盤很大空間,定位到指定目錄下發現其中一個系統自動創建的 topic,__consumer_offsets-45(kafka一共創建了50個分別從0~49標識)文件夾很大,上網搜了一翻,終得解決,記錄一下。
?
?
問題環境:
kafka版本:kafka_2.12-0.10.2.1
?
解決方法:
假如server.properties有以下配置項:
...
log.dirs=/data/kafka-logs
log.cleaner.enable=true log.cleanup.policy = delete // delete|compact log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000
...
以上配置對于特殊的topic,比如__consumer_offsets不一定有效,可以通過bin目錄自帶的kafka-configs.sh腳本查看下,操作如下:
?./kafka-configs.sh --zookeeper 172.19.228.188:2181 --entity-type topics --entity-name __consumer_offsets --describe?
顯示如下:
Configs for topic '__consumer_offsets' are segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
看的出來,segment.bytes、cleanup.policy、compression.type這三個配置項是針對topics的,server.conf配置log.cleanup.policy, log.segment.bytes 沒有起效,如果想讓該配置跟隨server.conf配置,則執行以下命令,刪除特殊配置?:
?./kafka-configs.sh --zookeeper 172.19.228.188:2181 --entity-type topics --entity-name __consumer_offsets --alter --delete-config cleanup.policy?
然后系統在后臺就清理對應過大的文件了,也就釋放了磁盤空間。
?