Обновление Selena
В этой теме описывается, как обновить ваш кластер Selena.
Важная информация
Перед обновлением Selena вам следует:
- Прочитать примечания к выпуску для версии Selena, до которой вы обновляетесь, и всех версий между текущей версией и целевой версией, и:
- Отметить любые изменения в поведении Selena
- Отметить любые изменения в интеграциях между Selena и внешними системами, используемыми для импорта, экспорта, визуализации и т.д.
- Проверить предварительные требования для развертывания для целевой версии. Например, Selena 3.5.x требует JDK 17, а Selena 3.4.x на Ubuntu требует JDK 11.
Обзор
Ознакомьтесь с информацией в этом разделе перед обновлением и выполните любые рекомендуемые действия.
Версии Selena
Версия Selena представлена тремя числами в формате Основная.Дополнительная.Патч, например, 2.5.4. Первое число представляет основную версию Selena, второе число представляет дополнительную версию, а третье число представляет версию патча.
ВНИМАНИЕ
Обратите внимание, что вы не можете обновить существующий кластер shared-nothing до кластера shared-data, или наоборот. Вы должны развернуть новый кластер shared-data.
Пути обновления
-
Для обновления версии патча
Вы можете обновить ваш кластер Selena между версиями патчей, например, с v2.2.6 напрямую до v2.2.11.
-
Для обновления дополнительной версии
Начиная с Selena v2.0, вы можете обновить кластер Selena между дополнительными версиями, например, с v2.2.x напрямую до v2.5.x. Однако, по соображениям совместимости и безопасности, мы настоятельно рекомендуем обновлять ваш кластер Selena последовательно от одной дополнительной версии к другой. Например, чтобы обновить кластер Selena v2.2 до v2.5, вам нужно обновить его в следующем порядке: v2.2.x --> v2.3.x --> v2.4.x --> v2.5.x.
-
Для обновления основной версии
Чтобы обновить ваш кластер Selena до v3.0, вы должны сначала обновить его до v2.5.
ВНИМАНИЕ
Предположим, вам нужно выполнить последовательные обновления дополнительных версий, например, 2.4->2.5->3.0->3.1->3.2, или вы понизили версию вашего кластера после неудачного обновления и хотите снова обновить кластер, например, 2.5->3.0->2.5->3.0. Чтобы предотвратить сбой обновления метаданных для некоторых Follower FE, выполните следующие шаги между двумя последовательными обновлениями или после понижения версии перед второй попыткой обновления:
- Выполните ALTER SYSTEM CREATE IMAGE для создания нового образа.
- Дождитесь синхронизации нового образа со всеми Follower FE.
Вы можете проверить, был ли синхронизирован файл образа, просмотрев файл журнала fe.log Leader FE. Запись журнала типа "push image.* from subdir [] to other nodes. totally xx nodes, push successful xx nodes" указывает на то, что файл образа был успешно синхронизирован.
Процедура обновления
Selena поддерживает последовательные обновления, которые позволяют обновлять ваш кластер без остановки сервиса. По дизайну, BE и CN обратно совместимы с FE. Поэтому вам нужно сначала обновить BE и CN, а затем FE, чтобы ваш кластер работал правильно во время обновления. Обновление их в обратном порядке может привести к несовместимости между FE и BE/CN, и тем самым вызвать сбой сервиса. Для узлов FE вы должны сначала обновить все узлы Follower FE перед обновлением узла Leader FE.
Перед началом
Во время подготовки вы должны выполнить настройку совместимости, если планируете обновление дополнительной или основной версии. Вам также необходимо выполнить тест доступности обновления на одном из FE и BE перед обновлением всех узлов в кластере.
Выполнение настройки совместимости
Если вы хотите обновить ваш кластер Selena до более поздней дополнительной или основной версии, вы должны выполнить настройку совместимости. В дополнение к универсальной настройке совместимости, детальные настройки различаются в зависимости от версии кластера Selena, с которой вы обновляетесь.
- Универсальная настройка совместимости
Перед обновлением вашего кластера Selena вы должны отключить клонирование tablet. Вы можете пропустить этот шаг, если уже отключили балансировщик.
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("disable_balance"="true");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="true");
После обновления, когда статус всех узлов BE станет Alive, вы можете снова включить клонирование tablet.
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "10000");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "500");
ADMIN SET FRONTEND CONFIG ("disable_balance"="false");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="false");
- Если вы обновляетесь с v2.0 до более поздних версий
Перед обновлением вашего кластера Selena v2.0 вы должны установить следующую конфигурацию BE и системную переменную.
-
Если вы изменили элемент конфигурации BE
vector_chunk_size, вы должны установить его в4096перед обновлением. Поскольку э то статический параметр, вы должны изменить его в файле конфигурации BE be.conf и перезапустить узел, чтобы изменение вступило в силу. -
Установите системную переменную
batch_sizeглобально на значение меньше или равное4096.SET GLOBAL batch_size = 4096;
Обновление BE
После прохождения теста доступности обновления вы можете сначала обновить узлы BE в кластере.
-
Перейдите в рабочий каталог узла BE и остановите узел.
# Замените <be_dir> на каталог развертывания узла BE.
cd <be_dir>/be
./bin/stop_be.sh -
Замените оригинальные файлы развертывания в bin и lib на файлы новой версии.
mv lib lib.bak
mv bin bin.bak
cp -r /tmp/StarRocks-x.x.x/be/lib .
cp -r /tmp/StarRocks-x.x.x/be/bin . -
Запустите узел BE.
sh bin/start_be.sh --daemon -
Проверьте, успешно ли запустился узел BE.
ps aux | grep starrocks_be -
Повторите вышеуказанные процедуры для обновления других узлов BE.
Обновление CN
-
Перейдите в рабочий каталог узла CN и корректно остановите узел.
# Замените <cn_dir> на каталог развертывания узла CN.
cd <cn_dir>/be
./bin/stop_cn.sh --graceful -
Замените оригинальные файлы развертывания в bin и lib на файлы новой версии.
mv lib lib.bak
mv bin bin.bak
cp -r /tmp/StarRocks-x.x.x/be/lib .
cp -r /tmp/StarRocks-x.x.x/be/bin . -
Запустите узел CN.
sh bin/start_cn.sh --daemon -
Проверьте, успешно ли запустился узел CN.
ps aux | grep starrocks_be -
Повторите вышеуказанные процедуры для обновления других узлов CN.
Обновление FE
После обновления всех узлов BE и CN вы можете затем обновить узлы FE. Вы должны сначала обновить узлы Follower FE, а затем узел Leader FE.
-
Перейдите в рабочий каталог узла FE и остановите узел.
# Замените <fe_dir> на каталог развертывания узла FE.
cd <fe_dir>/fe
./bin/stop_fe.sh -
Замените оригинальные файлы развертывания в bin, lib и spark-dpp на файлы новой версии.
mv lib lib.bak
mv bin bin.bak
mv spark-dpp spark-dpp.bak
cp -r /tmp/StarRocks-x.x.x/fe/lib .
cp -r /tmp/StarRocks-x.x.x/fe/bin .
cp -r /tmp/StarRocks-x.x.x/fe/spark-dpp . -
Запустите узел FE.
sh bin/start_fe.sh --daemon -
Проверьте, успешно ли запустился узел FE.
ps aux | grep StarRocksFE -
Повторите вышеуказанные процедуры для обновления других узлов Follower FE, и наконец узла Leader FE.