Как развернуть StarRocks из репозитория
Вариант А. Быстрый старт из репозитория с Docker Compose
Когда выбирать: демо, локальная отладка, обучение. Вся среда поднимается за минуты.
1) Клонируем репозиторий с примерами
В официальной документации Quick Start есть сценарии для Docker/Compose, а также вариант со «separate storage/compute». Вы можете взять готовые docker-compose.yml из их демо-репозитория.
git clone https://github.com/StarRocks/demo.git cd demo/documentation-samples/quickstart # В каталоге лежит docker-compose.yml, который поднимет FE/BE (и, при желании, MinIO)
2) Запуск кластера
docker compose up -d # проверяем docker compose ps
3) Подключение к FE (mysql-клиент внутри контейнера)
docker compose exec starrocks-fe \ mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > "
Это самый простой способ убедиться, что SQL-порт FE (9030) отвечает.
4) Первые команды в SQL
SHOW PROC '/frontends'; SHOW PROC '/backends'; SELECT VERSION();
Частые ошибки и как их избежать
- Порты заняты: измените маппинг портов FE/BE в docker-compose.yml.
- Недостаточно памяти Docker Desktop: выделите ≥4–8 ГБ.
- Медленный диск → долгий compaction: для демо это терпимо, но на проде используйте NVMe (см. сайзинг в модуле 3).
Вариант B. Сборка и запуск из исходников (GitHub → build → run)
Когда выбирать: нужен контроль версий/патчей, отладка FE/BE, CI/CD.
1) Клонируем исходники
git clone https://github.com/StarRocks/starrocks.git cd starrocks
2) Устанавливаем зависимости и компилируем
Для Ubuntu есть официальная памятка по зависимостям (automake, bison, maven, python и пр.), затем сборка скриптом build.sh.
# Ubuntu: зависимости (пример) sudo apt-get update sudo apt-get install -y automake binutils-dev bison byacc ccache flex \ libiberty-dev libtool maven zip python3 python-is-python3 bzip2 # Сборка всего кластера (be+fe) ./build.sh # (опционально) только BE: ./build.sh --be # только FE: ./build.sh --fe
примечание: на macOS сборка FE возможна через mvn в каталоге fe (для разработки), но рекомендовано собирать и тестировать на Linux/Ubuntu.
3) Минимальный локальный запуск
После сборки в каталоге output появятся бинарники и конфиги. Стандартно:
- FE: output/fe (скрипты start_fe.sh, stop_fe.sh)
- BE: output/be (скрипты start_be.sh, stop_be.sh)
# Терминал 1 — FE cd output/fe ./bin/start_fe.sh --daemon # Терминал 2 — BE (после старта FE) cd output/be ./bin/start_be.sh --daemon
Проверьте, что FE лидер в SHOW PROC '/frontends', а ваш BE — Alive в SHOW PROC '/backends'. Если запускаете несколько FE, добавляйте их как follower’ов, а BE — через ALTER SYSTEM ADD BACKEND "host:9050" из-под FE-лидера.
4) Юнит-тесты (по желанию)
./run-be-ut.sh ./run-fe-ut.sh
Частые ошибки и как их избежать
- Несовпадение версий JDK/Maven → используйте JDK 11+, как в handbook/Ubuntu-гайде.
- Нет прав на каталоги данных/логов → проверьте storage_root_path (BE) и права на папки.
- FE не становится лидером → запускайте первый FE, дождитесь статуса Leader, затем добавляйте последующие как followers.
Вариант C. Kubernetes: репозиторий оператора + Helm-чарты
Когда выбирать: продакшн, автомасштабирование, изоляция окружений, GitOps.
В экосистеме StarRocks есть оператор Kubernetes и чарты Helm, позволяющие развернуть FE/BE (и, при необходимости, CN) декларативно. Документация и чарты доступны на сайте и в GitHub/ArtifactHub.
1) Подготовка
- K8s-кластер (например, managed Kubernetes).
- Установлен Helm 3.
- Сетевое и дисковое хранилище для StatefulSet (NVMe/PV).
2) Установка операторa и кластера через Helm
(Нейминг чарта может отличаться в зависимости от версии. Общая последовательность — добавить репозиторий, поставить оператор, затем применить CR для кластера.)
# добавляем репозиторий чарта (пример) helm repo add starrocks https://starrocks.github.io/kube-starrocks helm repo update # ставим оператор helm install starrocks-operator starrocks/operator --namespace starrocks --create-namespace # ставим кластер (пример: kube-starrocks/starrocks) helm install my-sr starrocks/starrocks --namespace starrocks
Альтернатива из официальной документации «Deploy with Helm» и Quick Start по Helm (есть лабораторный пример): следуйте актуальным именам чартов и CR-полям в вашей версии.
3) Проверка статуса
kubectl get pods -n starrocks kubectl get svc -n starrocks
Подключайтесь к FE-сервису по 9030 (MySQL-протокол) — можно из кластера (kubectl exec -it ... mysql -h fe -P9030) или извне (через LoadBalancer/Ingress).
Частые ошибки и как их избежать
- Ephemeral диски у BE → потеря данных при ребуте ноды: используйте PV и RF=3.
- Нет доступа к FE Service извне → настройте Service типа LoadBalancer/Ingress и network policies.
- Несоответствие версий оператора/чарта/кластера → используйте совместимые версии из релиз-нот оператора.
Проверка работоспособности: базовый чек-лист
- SQL-коннект к FE: SELECT VERSION(); — отвечает.
- Состояние нод: SHOW PROC '/frontends' и '/backends' — Alive=TRUE.
- Создание БД/таблицы и простая вставка/выборка:
CREATE DATABASE demo; USE demo; CREATE TABLE t (id INT, v INT) DUPLICATE KEY(id) DISTRIBUTED BY HASH(id) BUCKETS 8; INSERT INTO t VALUES (1,10),(2,20); SELECT * FROM t;
- Профилирование: EXPLAIN SELECT ..., PROFILE — доступно без ошибок.
Что выбрать на практике
- Docker Compose — самый быстрый путь «пощупать» кластер и примеры. Не для нагрузочного тестирования.
- Сборка из исходников — когда нужна разработка/патчи/CI. Полный контроль, больше усилий на окружение.
- Kubernetes/Helm — продакшн, масштабирование, изоляция, политика обновлений и GitOps.
Типовые риски и как застраховаться
|
Риск |
Проявление |
Профилактика |
|---|---|---|
|
Несовместимость версий (оператор/чарт/кластер) |
CrashLoopBackOff, не создаются CR |
Проверяйте версии в релиз-нотах оператора и чарта, придерживайтесь матрицы совместимости. |
|
Недостаточно ресурсов |
Подвисают BE, долгие запросы |
Следуйте минимальным рекомендациям Quick Start, для проде — сайзинг (CPU/RAM/NVMe/сеть). |
|
FE недоступен снаружи (K8s) |
BI не может подключиться |
Настройте Service типа LoadBalancer/Ingress, откройте 9030/TCP по политике. |
|
Долгий запуск/ошибки компиляции из исходников |
build.sh падает, нет зависимостей |
Ставьте зависимости из «Compile on Ubuntu», собирайте по handbook, начните с Linux. |
|
Демонстрационная конфигурация в проде |
Непредсказуемая производительность |
Для проде используйте Helm/оператор и сайзинг из вашего профиля нагрузки. |
Полезные дополнения
- dbt-адаптер для StarRocks — если хотите сразу строить витрины как код.
- Docker-образ allin1-ubuntu — удобен для локальных экспериментов с «separate storage/compute» quick start.
- Коннекторы Flink/Spark — для потоковой/батч-интеграции в пайплайн.



