Вставьте новый сегмент, когда Apache Druid уже имеет больше 1M сегментов - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть установка кластера Apache Druid с 1 главным, 2 серверами данных и 1 сервером запросов и Apache Cassandra в качестве глубокого хранилища. Теперь моя установка друида содержит более 1 миллиона сегментов и 15 различных источников данных. Всякий раз, когда я пытаюсь вставить новые данные, это иногда дает мне исключение OutofMemeory.

Что я хочу сделать, это когда я хочу вставить новые данные, я хочу отметить некоторые из сегментов unused. Вот уловка, согласно druid doc , если я отмечу какой-либо сегмент как неиспользованный druid, удалит его из глубокого хранилища. Я не хочу этогоПосле вставки новых данных я хочу снова включить сегменты unused. Как я могу это сделать?

1 Ответ

1 голос
/ 05 ноября 2019
  1. Друид не удаляет unused сегменты из глубокого хранилища, пока вы не запустите kill task. Прочитайте здесь

Таким образом, в основном, есть 2 шага для окончательного удаления определенного сегмента: disable segment либо сегмент-интервал , либо сегментId, а затем опубликовать kill task на сервере друидов

Пока сегмент отключен, его можно перезагрузить. Чтобы перезагрузить неиспользуемые сегменты, напишите на сервере друид задачу, аналогичную следующей:
curl -X 'POST' -H 'Content-Type:application/json' -d '{ "interval" :
"interval-of-segment" }' http://localhost:8081/druid/coordinator/v1/datasources/datasourcename/markUsed
...