Руководство по обновлению кластера с разделением вычислений и хранения (поэтапное обновление)
Кластеры 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 в строке версии указывает, что кластер работает в режиме с разделением вычислений и хранения. У кластеров, работающих в режиме с совмещением вычислений и хранения, этого суффикса нет.
Ограничение на переключение режимов: переключение между режимом с разделением вычислений и хранения и режимом с совмещением вычислений и хранения не поддерживается.
Ограничение на откат версии: поддерживаются обновление с более ранней версии до более новой и откат на более раннюю патч-версию. Откат на более ранние минорные и мажорные версии не поддерживается.
Предварительные требования
Перед обновлением убедитесь, что выполнены все следующие условия:
- Проверьте режим развёртывания: убедитесь, что кластер работает в режиме с разделением вычислений и хранения (строка версии содержит суффикс
Cloud Mode). - Настройте повторные попытки импорта: убедитесь, что для заданий импорта предусмотрен механизм повторных попыток, чтобы перезапуски узлов во время обновления не приводили к сбоям заданий.
- Проверьте состояние компонентов: убедитесь, что MetaService, Recycler, FE и BE работают штатно, а в журналах нет ошибок.
- Создайте резервную копию метаданных FE: создайте резервную копию каталога метаданных Master FE (по умолчанию это каталог
doris-metaвнутри каталога FE). Если этот каталог пуст, проверьте параметрmeta_dirвconf/fe.conf, чтобы узнать фактический путь. - Скачайте установочный пакет: скачайте установочный пакет целевой версии с официального сайта Doris и проверьте контрольную сумму SHA-512, чтобы убедиться в целостности пакета.
Общий порядок обновления
Обновляйте компоненты в следующем порядке:
- Обновите MetaService
- Обновите Recycler (только если он развёрнут отдельно)
- Обновите BE
- Обновите FE
- Сначала обновите узлы Observer FE
- Затем обновите остальные узлы FE, не являющиеся Master
- В последнюю очередь обновите узел 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.