Как удалить node из кластера elasticsearch во время выполнения без времени простоя
Предположим, что у меня было 5 узлов в кластере, и мне пришлось удалить 2 node во время выполнения. Итак, как это можно сделать, не влияя на индексы?
У меня был непрерывный поток данных, достигающий почти 10 Gbphour, который непрерывно индексируется.
Будет ли перебалансировка в этом помочь? Спасибо заранее
Ответы
Ответ 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 ГБ в час), это может занять много времени для балансировки.
- Если у вас достаточно реплик, тогда состояние кластера будет желтым. В этом состоянии вы можете индексировать и искать в течение этого времени. Однако сначала осколки сначала не назначаются, а затем медленно перемещаются к узлам баланса.