Перезагрузка elasticsearch node
Каков правильный способ перезапуска node в elasticsearch? (желательно через REST API, API java тоже может быть в порядке)
Ответы
Ответ 1
Правильный способ перезапуска node состоит в том, чтобы закрыть его, используя либо API завершения работы, либо отправить сигнал TERM
в процесс (например, с помощью kill $PID
).
Как только вы завершите работу, вы можете запустить новый node, используя все, что вы используете для запуска elasticsearch, например, обертка сервиса, или просто запустите его из командной строки.
Если вы используете служебную оболочку, вы можете перезапустить node, передав ей команду restart
: например, /etc/init.d/elasticsearch restart
, но это всего лишь удобная оболочка для вышеперечисленного.
API restart
отключен с версии 0.11, поскольку это было проблематично.
Ответ 2
Существует API перезапуска, аналогичный API shutdown. Просто замените "shutdown" на "restart" . См. Также проблему на github.
Ответ 3
Каждый раз, когда загорается node и/или появляется новый node, кластер перераспределяет осколки, что может быть нежелательно, когда вам просто нужно перезапустить node, поэтому вы можете использовать Перезапуск перезапуска:
-
сначала отключить выделение осколков:
PUT/_cluster/settings { "переходный": { "cluster.routing.allocation.enable": "none" } }
-
перезапустите node service elasticsearch restart
-
Разрешить распределение осколков:
PUT/_cluster/settings
{ "переходный": { "cluster.routing.allocation.enable": "all" }
}
Подробнее об этом: Здесь