set config retention.ms = 3600000 все еще данные не удаляются из Kafka - PullRequest
0 голосов
/ 15 ноября 2018

Я установил retention.ms = 3600000 с помощью приведенной ниже команды, но все равно на диске много данных через 1 час.Мой диск заполнен из-за огромных данных, поступающих в Kafka.

./bin/kafka-topics.sh --zookeeper zookeeper:2181 --alter --topic topic_1 --config retention.ms=3600000

Опишите команду

 ./bin/kafka-topics.sh --zookeeper zookeeper:2181 --describe --topics-with-overrides
    Topic:__consumer_offsets        PartitionCount:50       ReplicationFactor:3     Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
    Topic:topic_1    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000
    Topic:topic_2    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000
    Topic:topic_3    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000,retention.bytes=104857600

Может кто-нибудь дать совет, почему kafka не удаляет данные через 1 час .?

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Исходя из результата команды описания, политика хранения тем установлена ​​на compact, что позволит вместо сжатия журналировать и сохранить последние данные для каждого ключа. Чтобы удалить все данные старше срока хранения, вам нужно установить политику хранения delete.

./bin/kafka-topics.sh --zookeeper zookeeper:2181 --alter --topic topic_1 --config cleanup.policy=delete
0 голосов
/ 16 ноября 2018

Как следует из документации, retention.ms контролирует максимальное время, в течение которого kafka будет сохранять журнал, прежде чем сбросить старые сегменты журнала, чтобы освободить пространство, если мы используем политику хранения «delete». Похоже, ваш cleanup.policy настроен на сжатие вместо delete

bin/kafka-configs.sh --zookeeper 2181 --entity-type topics 
--entity-name topic_1  --alter --add-config cleanup.policy=delete

PS: изменение конфигурации темы из сценария kafka-topics.sh (kafka.admin.TopicCommand) устарело. В дальнейшем используйте для этой функции сценарий kafka-configs.sh (kafka.admin.ConfigCommand).

0 голосов
/ 15 ноября 2018

Проверьте значение log.retention.check.interval.ms.
Это значение влияет на очиститель журнала.Он проверит, имеет ли какой-либо журнал право на удаление с этим интервалом.

...