Кафка + как рассчитать значение log.retention.byte - PullRequest
0 голосов
/ 29 октября 2018

Одна из основных ролей параметра 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

1 Ответ

0 голосов
/ 29 октября 2018

Вы на правильном пути. Просто помните пару вещей:

  • log.retention.bytes определяет, сколько данных Кафка обеспечит доступными. Так что это нижний предел . Максимальный размер на диске может быть трудно точно рассчитать, так как он зависит от ряда параметров, таких как размер сегментов и индексов, время прокрутки сегмента, интервал очистки (большинство log.* настроек). См. Политики хранения Kafka для получения дополнительной информации.

    Планирование 70% общего использования диска - хорошая идея, но на практике я все же рекомендовал бы отслеживать использование вашего диска, чтобы избежать неожиданностей.

  • Исходя из ваших расчетов, вам, вероятно, потребуются изменения, если вы хотите добавить разделы. Также обратите внимание, что реплики должны учитываться, поэтому если вы создаете 1 новый раздел с коэффициентом репликации 3, у 3 посредников должно быть свободное место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...