Глава 1.1. Развертывание StarRocks — сборка из исходников
Пошаговое руководство по выбору релиза StarRocks, подготовке Docker-окружения и сборке из исходников (FE/BE и Broker), с советами по AVX2/ARM и ускорению загрузки образов.
111 открытий2К показов
Перед развертыванием StarRocks часто встает вопрос выбора версии. На GitHub доступны архивы исходных кодов всех релизов, а на официальном сайте публикуются готовые бинарные пакеты для x86 (CentOS 7+). Рекомендуем ориентироваться на следующие принципы:
- Тестовая среда: используйте последний стабильный релиз (например, 3.5.6; см. страницу Tags на GitHub).
- Staging (предпроизводственная) и Production (производственная) среды: используйте последний минорный релиз предыдущей стабильной ветки.
- Если требуется новый функционал или критическая фиксация, можно собрать из актуального кода ветки main, используя официальный Docker-образ сборочного окружения.
- Компонент BE (Backend) требует CPU с поддержкой AVX2. Возможна сборка без AVX2 (работоспособно, но не рекомендуется — нет полноценного покрытия тестами).
- Начиная с 1.19 StarRocks поддерживает ARM, но потребует самостоятельной сборки на ARM-хосте (официальные готовые бинарники под ARM пока не публикуются).
Справочные ссылки:
- Страница Tags (например, 3.5.6, 4.0.0-rc01): https://github.com/StarRocks/starrocks/tags
- Release Notes 1.19 (сообщество): https://forum.mirrorship.cn/t/topic/552
Ниже — пример сборки из актуального кода ветки main с использованием официального Docker-образа.
1. Установка Docker и загрузка сборочного образа
Для примера используется CentOS 7.6 в виртуальной машине (рекомендуется ≥2 vCPU и ≥4 ГБ RAM). Во время сборки требуется стабильное сетевое подключение.
1.1 Установка Docker
1.2 Запуск Docker и автозапуск
1.3 Проверка установки
При успешном выполнении отобразится сообщение “Hello from Docker!”.
1.4 Ускорение загрузки образов (для нестабильных каналов)
Если загрузка официальных образов Docker медленная/нестабильная, можно использовать сервисы Alibaba Cloud Container Registry (ACR). Важно: официальный ACR image accelerator больше не синхронизирует последние образы. Если образ не скачивается или тег latest не содержит актуальную версию, воспользуйтесь альтернативами:
- Подписка в ACR на зарубежные исходные образы (subscription of overseas source images).
- Использование GA (Global Accelerator) для ускорения прямого доступа к зарубежным реестрам.
Рекомендация для Production: минимизируйте зависимость от Docker Hub из‑за сетевых рисков.
Если вы используете containerd:
- Убедитесь, что в /etc/containerd/config.toml задан config_path, например:
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d" - Уберите конфликтующие mirrors (если есть), перезапустите containerd:
sudo systemctl restart containerd - При ошибке старта изучите вывод:
journalctl -u containerd - Создайте файл /etc/containerd/certs.d/docker.io/hosts.toml:
server = "https://registry-1.docker.io" [host."https://<your-ACR-accelerator-address>"] capabilities = ["pull", "resolve", "push"]
1.5 Загрузка сборочного образа StarRocks
Выбирайте тег образа в соответствии с веткой/версией исходников (для ветки main — тег main; для ветки 3.5 — тег 3.5 и т. п.):
1.6 Просмотр локальных образов
2. Получение исходников StarRocks
2.1 Клонирование из GitHub или скачивание архива
Стандартно:
Если из‑за сетевых ограничений возникают ошибки (например, EOF), можно:
- использовать зеркало GitHub (пример):
git clone https://github.com.cnpmjs.org/StarRocks/starrocks.git - либо скачать архив кода из браузера: https://github.com/StarRocks/starrocks
- архив конкретного релиза: https://github.com/StarRocks/starrocks/tags
Чтобы ускорить клонирование, добавьте --depth 1 (если не требуется полная история).
2.2 Загрузка архива на сервер и распаковка (вариант с ZIP)
2.3 Запуск контейнера со сборочным окружением и монтированием кэшей
Рекомендуется смонтировать локальный Maven-кэш (~/.m2) для ускорения повторных сборок.
(Опционально — подключите ccache, смонтировав ~/.ccache, если это поддерживается образом.)
2.4 Проверка запущенных контейнеров
2.5 Вход в контейнер
2.6 Переход в каталог исходников
2.7 Сборка FE и BE
Скрипт скачает зависимости и выполнит сборку (может занять значительное время). Благодаря монтированию ~/.m2 зависимости будут переиспользованы в следующих сборках.
Результаты сборки — в каталоге output/:
Сборка без AVX2 (только при необходимости; не рекомендуется)
Измените build.sh, чтобы принудительно отключить AVX2:
Измените сборку сторонней библиотеки в thirdparty/build-thirdparty.sh (блок croaring):
Повторно выполните ./build.sh. Учтите: такой вариант не имеет полноценного покрытия тестами.
Полезные опции build.sh
2.8 Сборка Broker
Broker не собирается шагом выше — его нужно собирать отдельно:
Готовые файлы появятся в
.
2.9 Выход и повторный запуск контейнера при необходимости
Так как каталог с исходниками смонтирован в контейнер, результаты сборки доступны на хосте.
Примечания и рекомендации
- FE (Frontend) и BE (Backend) — основные компоненты StarRocks, сборка которых выполняется скриптом
build.sh. - Для воспроизводимости привязывайте тег сборочного Docker-образа к ветке/версии исходников (например,
starrocks/dev-env:3.5для ветки 3.5.x). - Для ускорения повторных сборок используйте кэш Maven (
~/.m2) и, при возможности,ccacheдля C++. - ARM: официальный сборочный Docker-образ пока не рассчитан на ARM. Для ARM-сборки потребуется нативный ARM-хост и корректные версии зависимостей (JDK, CMake и др.).
- Список актуальных релизов и тегов: https://github.com/StarRocks/starrocks/tags
- Release Notes 1.19 (сообщество): https://forum.mirrorship.cn/t/topic/552
После этих шагов у вас будут собранные бинарные артефакты FE/BE и Broker, готовые к дальнейшему развертыванию кластера StarRocks.
111 открытий2К показов



