我有一個雙節點Kafka集羣,每個集羣分配48 GB磁盤。 server.properties
設置爲將日誌保留至48小時或將日誌段保留至1 GB。這是它:爲什麼Kafka不會刪除數據?
log.retention.hours=48
log.retention.bytes=1073741824
log.segment.bytes=1073741824
我有30個話題的部分。下面是這些分區中的一個磁盤使用情況統計:
-rw-r--r-- 1 root root 1.9M Apr 14 00:06 00000000000000000000.index
-rw-r--r-- 1 root root 1.0G Apr 14 00:06 00000000000000000000.log
-rw-r--r-- 1 root root 0 Apr 14 00:06 00000000000000000000.timeindex
-rw-r--r-- 1 root root 10M Apr 14 12:43 00000000000001486744.index
-rw-r--r-- 1 root root 73M Apr 14 12:43 00000000000001486744.log
-rw-r--r-- 1 root root 10M Apr 14 00:06 00000000000001486744.timeindex
正如你可以清楚地看到,我們有1 GB的日誌段。但根據我的理解,它應該已經被刪除。此外,卡夫卡推出這些日誌已超過48小時。思考?
那麼,手動刪除舊的日誌段然後重新啓動服務器可以嗎?我們的磁盤幾乎達到了80%。不想陷入任何災難性的錯誤。 – Ankush92
個人而言,我認爲這是可行的,因爲Kafka所做的是刪除包括段文件和索引在內的日誌文件,並重新啓動服務器有助於更新服務器元數據,但我強烈建議您進行全面的測試。 – amethystic
確實。我認爲卡夫卡和我建議手動完成的事情是一樣的。但在生產中做這樣的事情是相當大膽的。 – Ankush92