Я хочу перезапустить узел elasticsearch с новой конфигурацией. Как лучше всего завершить работу узла?
Убить процесс - лучший способ выключить сервер, или есть какой-то волшебный URL-адрес, который я могу использовать для выключения узла?
elasticsearch
Michael_Scharf
источник
источник
Если вы просто хотите применить новую конфигурацию, вам не нужно закрывать ее.
$ sudo service elasticsearch restart
Но если вы все равно хотите его выключить:
$ sudo service elasticsearch stop
ИЛИ ЖЕ
$ sudo systemctl stop elasticsearch.service
$ sudo systemctl restart elasticsearch.service
Докер:
docker restart <elasticsearch-container-name or id>
источник
У меня это работает на OSX.
источник
Остановка службы и уничтожение демона действительно являются правильными способами выключения узла. Однако не рекомендуется делать это напрямую, если вы хотите отключить узел для обслуживания. Фактически, если у вас нет реплик, вы потеряете данные.
Когда вы закрываете узел напрямую, Elasticsearch будет ждать 1 мин (время по умолчанию), чтобы он вернулся в онлайн. Если этого не произойдет, он начнет распределять шарды с этого узла другим узлам, тратя много операций ввода-вывода.
Типичный подход - временно отключить выделение сегментов, выполнив:
Теперь, когда вы снимаете узел, ES не будет пытаться выделить шард с этого узла другим узлам, и вы можете выполнять действия по обслуживанию, а затем, когда узел будет запущен, вы можете снова включить выделение сегментов:
Источник: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/restart-upgrade.html
Если у вас нет реплик для всех ваших индексов, то выполнение этого типа действий приведет к простоям некоторых индексов. Более чистый способ в этом случае - это перенести все шарды на другие узлы перед отключением узла:
Это переместит все шарды с
10.0.0.1
других узлов (это займет время, в зависимости от данных). Как только все будет сделано, вы можете убить узел, выполнить обслуживание и вернуть его в оперативный режим. Это более медленная операция и не требуется, если у вас есть реплики.(Вместо _ip, _id, _name с подстановочными знаками будет работать нормально.)
Дополнительная информация: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/allocation-filtering.html
Другие ответы объяснили, как убить процесс.
источник
Плагин Head для Elasticsearch предоставляет отличный веб-интерфейс для администрирования Elasticsearch, включая отключение узлов. Он также может запускать любые команды Elasticsearch.
источник
используйте следующую команду, чтобы узнать pid уже запущенного узла.
Мне потребовался час, чтобы найти способ убить узел, и я наконец смог это сделать после использования этой команды в окне терминала.
источник
Если вы не можете найти, какой процесс запускает elasticsearch на компьютере с Windows, вы можете попробовать запустить его в консоли:
Ищите порт, который работает elasticsearch, по умолчанию
9200
. Последний столбец - это PID для процесса, использующего этот порт. Вы можете выключить его с помощью простой команды в консолиисточник
На всякий случай, если вы хотите найти PID экземпляра и убить процесс, предполагая, что узел прослушивает порт 9300 (порт по умолчанию), вы можете выполнить следующую команду:
Возможно, вам придется поиграть с числами в вышеупомянутом коде, такими как 58 и 1.
источник
Если вы запускаете узел на локальном хосте, попробуйте использовать
brew service stop elasticsearch
Я запускаю elasticsearch на локальном хосте iOS.
источник
Ответ для Elasticsearch внутри Docker:
Просто остановите контейнер докеров. Кажется, что он изящно останавливается, потому что регистрирует:
источник
Учитывая, что у вас есть 3 узла.
Подготовьте свой кластер
Остановить службу elasticsearch на каждом узле
Повторный перезапуск кластера
Проверено на Elasticseach 6.5
Источник:
источник