[Перевод] Постоянное обновление Elasticsearch

задняя часть Программа перевода самородков Elasticsearch редкоземельный

Последовательное обновление Elasticsearch

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

из этого спискаtableПроверьте, поддерживает ли текущая версия ES непрерывное обновление.

Шаги непрерывного обновления следующие:

Шаг 1. Шаги непрерывного обновления следующие:

Когда вы закрываете узел, процесс выделения осколков пытается немедленно скопировать осколки с текущего узла на другие узлы в кластере, что приводит к большому количеству ненужных операций ввода-вывода. Чтобы избежать этой проблемы, вы можете отключить этот процесс перед выключением узла.

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "none"
  }
}

Шаг 2. Остановите ненужные индексы и выполните синхронное обновление (этот шаг не является обязательным)

Конечно, вы можете успешно индексировать во время обновления, если вы используете следующие команды, чтобы остановить ненужное индексирование и выполнить синхронное обновление.synced-flushзапрос, восстановление шарда будет быстрее:

POST /_flush/synced

Синхронное обновление — это вишенка на торте. Если индекс зависнет, операция завершится ошибкой, и для безопасности необходимо несколько раз попробовать.

Шаг 3: Один узел отключен и обновлен

Перед обновлениемВыключите узел.

Примечание. При использовании пакета zip или tar для обновления конфигурация, данные, журнал, плагины и другие каталоги в домашнем каталоге Elasticsearch будут перезаписаны по умолчанию. Лучше всего разархивировать в другой каталог, чтобы исходный каталог не был удален во время обновления. Доступ к пользовательским каталогам можно получить через path.conf и path.data.настраивать. Пакеты RPM или DEB поместят каталог вПодходящее место

использоватьrpm/deb) установочный пакет обновления:

  • использоватьrpmилиdpkgУстановите новый пакет, и все каталоги будут размещены на своих местах, файлы конфигурации не будут перезаписаны.

Разархивируйте установку с помощью пакета zip или tar:

  • Разархивируйте установочный пакет, убедитесь, что он не перезаписанconfigиdataсодержание.
  • Скопировать из старого каталога установкиconfкаталог в новый каталог установки или используйте--path.confoptions во внешний каталог конфигурации
  • Скопировать из старого каталога установкиdataкаталог в новый каталог установки или изменитьconfig/elasticsearch.ymlсерединаpath.dataУстановите каталог данных в исходный каталог.

Шаг 4: Запустите обновленный узел

Запустите обновленный узел и подтвердите присоединение к кластеру, что можно подтвердить с помощью журнала или следующей команды:

GET _cat/nodes

Шаг 5. Повторно откройте балансировку сегментов.

Как только узел снова присоединится к кластеру, разблокируйте процесс выделения сегментов и перебалансируйте:

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

Шаг 6: Подождите, пока узел вернется в нормальное состояние

Дождитесь завершения балансировки сегментов кластера, прежде чем обновлять следующий узел. Этот процесс можно использовать_cat/healthПроверка команды:

GET _cat/health

Подожди покаstatusЭтот столбец состоит изyellowстатьgreen, Зеленый цвет означает, что были выделены как первичные сегменты, так и реплики.

Важно: во время последовательного обновления основной сегмент более высокой версии не будет назначать реплики узлам более ранней версии, поскольку формат данных более высокой версии не распознается старой версией. Если первичный шард с более высокой версией не может выделить реплику, другими словами, если в кластере остался только один узел с более высокой версией, узел останется неназначенным, а работоспособность кластера сохранитсяyellow. В этом случае проверьте, выполняется ли инициализация или выделение осколков. После завершения обновления другого узла сегменты будут выделены, а состояние кластера будет восстановлено доgreen.

не использовалОбновление синхронизацииВремя восстановления осколка будет медленнее. Доступ к состоянию шарда можно получить через_cat/recoveryМониторинг запросов:

GET _cat/recovery

Если вы остановите операцию индексации до этого, ее можно будет безопасно перезапустить после завершения восстановления узла.

Шаг 7: Повторите вышеуказанные шаги

Когда кластер станет стабильным и узлы снова заработают, повторите описанный выше процесс для оставшихся узлов.


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллекти другие поля, если вы хотите видеть больше качественных переводов, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.