Подтвердить что ты не робот

Как удалить node из кластера elasticsearch во время выполнения без времени простоя

Предположим, что у меня было 5 узлов в кластере, и мне пришлось удалить 2 node во время выполнения. Итак, как это можно сделать, не влияя на индексы?

У меня был непрерывный поток данных, достигающий почти 10 Gbphour, который непрерывно индексируется.

Будет ли перебалансировка в этом помочь? Спасибо заранее

4b9b3361

Ответ 1

Вы можете списать узел, сказав кластеру исключить его из распределения. (Из документации здесь)

curl -XPUT localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d '{
  "transient" :{
      "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
   }
}';echo

Это заставит Elasticsearch распределить сегменты на этом узле оставшимся узлам, при этом состояние кластера не изменится на желтый или красный (даже если у вас есть репликация 0).

После того, как все осколки были перераспределены, вы можете выключить узел и сделать там все, что вам нужно. Как только вы закончите, включите узел для выделения, и Elasticsearch снова перебалансирует осколки.

Ответ 2

Чтобы удалить узел эластичного поиска из кластера, просто выполните следующую команду

curl -XPUT P.P.P.P:9200/_cluster/settings -H 'Content-Type: application/json' -d '{
  "transient" :{
      "cluster.routing.allocation.exclude._ip" : "X.X.X.X"
   }
}';echo

Здесь PPPP - это частный IP-адрес главного узла, вы также можете использовать localhost, еслиasticsearch работает на localhost. XXXX - это частный IP-адрес узла, который нужно удалить из кластера.

Эта команда выдаст acknowledgement true если узел принят для удаления и начнется перемещение данных. Проверьте, закончилось ли перемещение данных и не осталось ли на нем никаких осколков, затем остановите elasticsearch и stop/terminate экземпляр. Команды для проверки перемещения данных и оставленные осколки можно найти в этой статье.

Ответ 3

Вы всегда можете убить процесс, чтобы удалить node во время выполнения. Кластер Elasticearch автоматически перебалансирует оставшиеся узлы. Но здесь есть несколько минусов.

  • Сколько реплик у вас есть в настройках?
  • Сколько у вас черепов в настройках?
  • Если данные, присутствующие в осколках, слишком велики (10 ГБ в час), это может занять много времени для балансировки.
  • Если у вас достаточно реплик, тогда состояние кластера будет желтым. В этом состоянии вы можете индексировать и искать в течение этого времени. Однако сначала осколки сначала не назначаются, а затем медленно перемещаются к узлам баланса.