Каков правильный способ перезапуска node в elasticsearch? (желательно через REST API, API java тоже может быть в порядке)
Перезагрузка elasticsearch node
Ответ 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" } }
Подробнее об этом: Здесь