Перейти к содержимому
Последнее обновление

Руководство по обновлению кластера с разделением вычислений и хранения (поэтапное обновление)

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

Обновление кластера с совмещением вычислений и хранения описано в разделе Обновление кластера.

Нумерация версий​

Doris использует номер версии из трёх частей (например, 3.0.3). Чтобы проверить текущую версию, выполните следующий SQL:

MySQL [(none)]> select @@version_comment;
+----------------------------------------------------------+
| @@version_comment |
+----------------------------------------------------------+
| Doris version doris-3.0.3-rc03-43f06a5e26 (Cloud Mode) |
+----------------------------------------------------------+

Части номера версии имеют следующие значения:

ПозицияЗначениеПример
ПерваяМажорная версия3
ВтораяМинорная версия0
ТретьяПатч-версия3
Четвёртая (необязательная)Экстренный выпуск с исправлением критической ошибки в патч-версии2.0.2.1

Суффикс Cloud Mode в строке версии указывает, что кластер работает в режиме с разделением вычислений и хранения. У кластеров, работающих в режиме с совмещением вычислений и хранения, этого суффикса нет.

Ограничение на переключение режимов: переключение между режимом с разделением вычислений и хранения и режимом с совмещением вычислений и хранения не поддерживается.

Ограничение на откат версии: поддерживаются обновление с более ранней версии до более новой и откат на более раннюю патч-версию. Откат на более ранние минорные и мажорные версии не поддерживается.

Предварительные требования​

Перед обновлением убедитесь, что выполнены все следующие условия:

  1. Проверьте режим развёртывания: убедитесь, что кластер работает в режиме с разделением вычислений и хранения (строка версии содержит суффикс Cloud Mode).
  2. Настройте повторные попытки импорта: убедитесь, что для заданий импорта предусмотрен механизм повторных попыток, чтобы перезапуски узлов во время обновления не приводили к сбоям заданий.
  3. Проверьте состояние компонентов: убедитесь, что MetaService, Recycler, FE и BE работают штатно, а в журналах нет ошибок.
  4. Создайте резервную копию метаданных FE: создайте резервную копию каталога метаданных Master FE (по умолчанию это каталог doris-meta внутри каталога FE). Если этот каталог пуст, проверьте параметр meta_dir в conf/fe.conf, чтобы узнать фактический путь.
  5. Скачайте установочный пакет: скачайте установочный пакет целевой версии с официального сайта Doris и проверьте контрольную сумму SHA-512, чтобы убедиться в целостности пакета.

Общий порядок обновления​

Обновляйте компоненты в следующем порядке:

  1. Обновите MetaService
  2. Обновите Recycler (только если он развёрнут отдельно)
  3. Обновите BE
  4. Обновите FE
    1. Сначала обновите узлы Observer FE
    2. Затем обновите остальные узлы FE, не являющиеся Master
    3. В последнюю очередь обновите узел Master FE

Шаги обновления​

Шаг 1: обновление MetaService​

Выполните следующие операции для каждого экземпляра MetaService. На этом шаге используются следующие переменные окружения:

ПеременнаяЗначение
${MS_HOME}Рабочий каталог MetaService
${MS_PACKAGE_DIR}Каталог с новым установочным пакетом MetaService

1. Остановите текущий процесс MetaService

cd ${MS_HOME}
sh bin/stop.sh

2. Создайте резервную копию существующих бинарных файлов

mv ${MS_HOME}/bin bin_backup_$(date +%Y%m%d_%H%M%S)
mv ${MS_HOME}/lib lib_backup_$(date +%Y%m%d_%H%M%S)

3. Разверните новый установочный пакет

cp ${MS_PACKAGE_DIR}/bin ${MS_HOME}/bin
cp ${MS_PACKAGE_DIR}/lib ${MS_HOME}/lib

4. Запустите новую версию MetaService

sh ${MS_HOME}/bin/start.sh --daemon

5. Проверьте результат обновления

Убедитесь, что процесс MetaService работает штатно, а в ${MS_HOME}/log/doris_cloud.out указан новый номер версии.


Шаг 2: обновление Recycler (при необходимости)​

предупреждение

Если компонент Recycler не развёрнут отдельно, пропустите этот шаг.

Выполните следующие операции для каждого экземпляра Recycler. MetaService и Recycler используют один установочный пакет. На этом шаге используются следующие переменные окружения:

ПеременнаяЗначение
${RECYCLER_HOME}Рабочий каталог Recycler
${MS_PACKAGE_DIR}Каталог с новым установочным пакетом (общим для Recycler и MetaService)

1. Остановите текущий процесс Recycler

cd ${RECYCLER_HOME}
sh bin/stop.sh

2. Создайте резервную копию существующих бинарных файлов

mv ${RECYCLER_HOME}/bin bin_backup_$(date +%Y%m%d_%H%M%S)
mv ${RECYCLER_HOME}/lib lib_backup_$(date +%Y%m%d_%H%M%S)

3. Разверните новый установочный пакет

cp ${MS_PACKAGE_DIR}/bin ${RECYCLER_HOME}/bin
cp ${MS_PACKAGE_DIR}/lib ${RECYCLER_HOME}/lib

4. Запустите новую версию Recycler

sh ${RECYCLER_HOME}/bin/start.sh --recycler --daemon

5. Проверьте результат обновления

Убедитесь, что процесс Recycler работает штатно, а в ${RECYCLER_HOME}/log/doris_cloud.out указан новый номер версии.


Шаг 3: обновление BE​

подсказка

Перед обновлением BE убедитесь, что все экземпляры MetaService и Recycler (если он используется) уже обновлены.

Выполните следующие операции для каждого экземпляра BE. На этом шаге используются следующие переменные окружения:

ПеременнаяЗначение
${BE_HOME}Рабочий каталог BE
${BE_PACKAGE_DIR}Каталог с новым установочным пакетом BE

1. Остановите текущий процесс BE

cd ${BE_HOME}
sh bin/stop_be.sh

2. Создайте резервную копию существующих бинарных файлов

mv ${BE_HOME}/bin bin_backup_$(date +%Y%m%d_%H%M%S)
mv ${BE_HOME}/lib lib_backup_$(date +%Y%m%d_%H%M%S)

3. Разверните новый установочный пакет

cp ${BE_PACKAGE_DIR}/bin ${BE_HOME}/bin
cp ${BE_PACKAGE_DIR}/lib ${BE_HOME}/lib

4. Запустите новую версию BE

sh ${BE_HOME}/bin/start_be.sh --daemon

5. Проверьте результат обновления

Выполните следующий SQL, чтобы проверить версию и состояние BE:

show backends;

Шаг 4: обновление FE​

подсказка

Перед обновлением FE убедитесь, что все экземпляры BE уже обновлены.

Узлы FE необходимо обновлять по одному в следующем порядке: Observer -> non-Master -> Master.

Выполните следующие операции для каждого экземпляра FE. На этом шаге используются следующие переменные окружения:

ПеременнаяЗначение
${FE_HOME}Рабочий каталог FE
${FE_PACKAGE_DIR}Каталог с новым установочным пакетом FE

1. Остановите текущий процесс FE

cd ${FE_HOME}
sh bin/stop_fe.sh

2. Создайте резервную копию существующих бинарных файлов

mv ${FE_HOME}/bin bin_backup_$(date +%Y%m%d_%H%M%S)
mv ${FE_HOME}/lib lib_backup_$(date +%Y%m%d_%H%M%S)

3. Разверните новый установочный пакет

cp ${FE_PACKAGE_DIR}/bin ${FE_HOME}/bin
cp ${FE_PACKAGE_DIR}/lib ${FE_HOME}/lib

4. Запустите новую версию FE

sh ${FE_HOME}/bin/start_fe.sh --daemon

5. Проверьте результат обновления

Выполните следующий SQL, чтобы проверить версию и состояние FE:

show frontends;

Часто задаваемые вопросы​

Вопрос 1: перед обновлением кластера с совмещением вычислений и хранения необходимо отключить перераспределение реплик. Требуется ли это и в режиме с разделением вычислений и хранения?

Нет. В режиме с разделением вычислений и хранения Doris хранит данные в HDFS или объектном хранилище (S3), поэтому необходимости в перераспределении реплик нет. Выполнять эту операцию не нужно.

Вопрос 2: если MetaService предоставляет отдельный сервис метаданных, зачем всё ещё нужно создавать резервную копию метаданных FE?

В настоящее время за ведение метаданных отвечают совместно MetaService и FE, причём каждый компонент обслуживает свою часть. Для безопасного обновления предварительно создайте резервную копию каталога метаданных FE.