Одна из основных ролей параметра log.retention.byte заключается в том, чтобы избежать полного размера диска kafka или, другими словами, очистить журналы данных, чтобы избежать переполнения диска kafka
По следующей ссылке:
https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_kafka-component-guide/content/kafka-broker-settings.html
log.retention.bytes - это объем данных, сохраняемых в журнале для каждого раздела темы. По умолчанию размер журнала не ограничен.
Мы также видим примечание - это ограничение для каждого раздела, поэтому умножьте это значение на количество разделов, чтобы рассчитать общее количество данных, оставшихся для темы.
Чтобы понять это хорошо, давайте приведем небольшой пример (практический опыт всегда намного лучше)
В машине kafka В разделе / var / kafka / kafka-logs есть следующие разделы темы, а название темы - lop.avo.prt.prlop
пример разделов тем в / var / kafka / kafka-logs
lop.avo.prt.prlop-1
lop.avo.prt.prlop-2
lop.avo.prt.prlop-3
lop.avo.prt.prlop-4
lop.avo.prt.prlop-5
lop.avo.prt.prlop-6
lop.avo.prt.prlop-7
lop.avo.prt.prlop-8
lop.avo.prt.prlop-9
lop.avo.prt.prlop-10
и под каждым разделом у нас есть следующие журналы (пример)
4.0K 00000000000000023657.index
268K 00000000000000023657.log
4.0K 00000000000000023657.timeindex
4.0K 00000000000000023854.index
24K 00000000000000023854.log
4.0K 00000000000000023854.timeindex
В кластере у нас 3 кафки машины (3 брокера)
О хранилище кафки - в каждую кафку входит диск размером 100G
Допустим, мы хотим очистить журналы в теме, когда диск достигает 70% от общего диска,
так что теперь давайте попробуем вычислить значение log.retention.bytes в соответствии с приведенной выше информацией
потому что у нас есть 10 тематических разделов и мы хотим ограничить общий размер диска до 70G
тогда я предполагаю, что вычисление будет следующим:
каждый раздел будет ограничен до 7G и 7G с переводом в байты, поэтому он составляет 16 7516192768 байт
7G X 10 = 70G (70% от общего объема диска)
Похоже, что log.retention.bytes следует установить на 7516192768, чтобы ограничить каждый раздел 7516192768 байтами
Доза мое предположение логично?
Если нет, то каков правильный расчет - log.retention.bytes
? на основе этого диска kafka 100G, и у нас есть только 10 тематических разделов в / var / kafka / kafka-logs