Как развернуть StarRocks — одноузловое развёртывание
Пошаговая инструкция по одноузловому развертыванию StarRocks: подготовка среды, настройка FE/BE/Broker, подключение через MySQL, проверка статуса и базовый пример запросов.
70 открытий1К показов
Строго говоря, в StarRocks нет «Standalone-режима», и тем более не рекомендуется развёртывать одиночный экземпляр в продуктивной среде. Этот раздел выделен отдельно для сценариев, когда тестовая среда ограничена числом машин или требуется лишь быстрая проверка функциональности — в таком случае можно развернуть StarRocks на одной машине.
В качестве примера используем сервер «starrocks (192.168.110.98)». После выполнения шагов из главы «Глава 1.2: Развертывание StarRocks — подготовка среды» приступаем к развертыванию одноузловой конфигурации.
Для удобства демонстрации подключаемся к серверу пользователем root через XShell. Архитектура одноузловой конфигурации:
Дизайн каталогов развертывания и данных (дальнейшие шаги строго следуют этому плану):
1. Получение бинарного пакета
Бинарные пакеты StarRocks доступны на официальном сайте.
В примере используем пакет StarRocks-1.19.2.tar.gz и загружаем его в каталог /opt/software:
2. Распаковка пакета
Структура распакованного пакета и краткие пояснения приведены в Приложении 1 (дерево каталогов пакета развертывания StarRocks).
3. Подготовка и размещение файлов развертывания
4. Развертывание экземпляра FE
Изменение конфигурации FE
Конфигурация по умолчанию обычно достаточна для запуска кластера; начинающим пользователям не рекомендуется менять много параметров. В тестовой среде для FE обратите внимание на три момента:
- Порты по умолчанию — чтобы исключить конфликты (обычно менять не требуется).
- Привязка IP-адреса — чтобы при наличии нескольких интерфейсов сервис корректно выбирал нужный адрес. Если не знакомы с нотацией CIDR, можно указать полный IP-адрес (алиасы не поддерживаются), например:
priority_networks = 192.168.110.98, что эквивалентноpriority_networks = 192.168.110.98/32. - Каталог метаданных — по умолчанию
fe/meta. Рекомендуется создать отдельный каталог и указать его в конфигурации.
Создадим каталог метаданных:
Внесем изменения по привязке IP-адреса и каталогу метаданных (строки с #— комментарии):
Сохраните конфигурацию.
Запуск FE
Примечание: скрипт остановки FE —
(запуск:
FE написан на Java. Проверьте процессы командой jps: если виден процессStarRocksFe, значит FE запущен.
При нештатном состоянии изучите журналы (логи) в каталоге FE; основной журнал — fe.log, журналы аудита запросов — fe.audit.log. Так как это первый запуск, если операции выполняются подозрительно долго, можно очистить каталог метаданных FE и повторить процедуру.
Доступ к FE
Подключимся к FE с помощью клиента MySQL (mysql-client). Порт для запросов FE по умолчанию — 9030; встроенный пользователь root, пароль по умолчанию пустой:
Проверка состояния FE
Если клиент MySQL успешно подключился к FE, это означает, что FE работает. Выполним проверку:
Если Alive = true, узел FE работает нормально.
Добавление экземпляров в кластер
Добавим BE и Broker в кластер. Строгой очередности между «запуском сервиса» и «добавлением сервиса в кластер» нет. Однако если запустить сервис заранее, до добавления экземпляра в кластер BE может писать предупреждения в журнал (например: Fail to get master client from cache). Поэтому удобно сначала полностью подготовить FE, затем добавить остальные экземпляры SQL-командами через клиент MySQL, и после этого по очереди развернуть и запустить их.
- Добавление BE (используется
heartbeat_service_portBE, по умолчанию 9050):
- Добавление Broker: зададим имя, например
hdfs_broker(используетсяbroker_ipc_port, по умолчанию 8000):
Если при добавлении экземпляра допущена ошибка, можно удалить его и добавить снова.
- Удаление BE из кластера. Так как в примере только один экземпляр BE, можно удалить его «рисковой» командой
dropp(специально двукратная «p»):
- Удаление Broker:
Завершим сеанс:
Развертывание экземпляра BE
Изменение конфигурации BE
В тестовой среде для BE обратите внимание на три момента:
- Порты по умолчанию — чтобы исключить конфликты (обычно менять не требуется).
- Привязка IP-адреса — чтобы при наличии нескольких интерфейсов сервис корректно выбирал нужный адрес (если не знакомы с CIDR, укажите полный IP-адрес).
- Каталог хранения данных — по умолчанию
be/storage. Рекомендуется создать отдельный каталог и указать его в конфигурации.
Создадим каталог хранения данных:
Изменим конфигурацию (строки с # — комментарии):
Сохраните конфигурацию.
Запуск BE
Примечание: скрипт остановки BE — stop_be.sh (запуск: ./stop_be.sh).
BE написан на C++. Проверьте процессы с помощью ps: если виден процесс starrocks_be, значит BE запущен.
Проверка состояния BE
Снова подключимся к кластеру через клиент MySQL:
Проверим состояние BE:
Если Alive = true, BE работает нормально. Так как это первый запуск, при сложностях с быстрой диагностикой можно очистить каталог данных /opt/storage и перезапустить сервис.
Завершим сеанс:
Развертывание Broker
После развертывания FE и BE основные сервисы StarRocks готовы. Broker — промежуточный сервис интеграции StarRocks с внешними системами HDFS/объектным хранилищем. Если интеграция не нужна, Broker можно не развертывать. Broker является процессом без сохранения состояния (stateless) и может свободно запускаться и останавливаться без влияния на кластер.
Конфигурация Broker
Конфигурацию Broker обычно менять не требуется. В отличие от FE и BE, у Broker нет и не нужен параметр priority_networks. Сервис Broker по умолчанию привязан к адресу 0.0.0.0. При выполнении команды ADD BROKER (см. раздел 4.5) достаточно указать корректный IP-адрес узла Broker.
Запуск Broker
Примечание: скрипт остановки Broker — stop_broker.sh (запуск: ./stop_broker.sh).
Проверьте процессы Java: если виден BrokerBootstrap, значит Broker запущен.
Журналы Broker — в файле apache_hdfs_broker.log. При нештатном состоянии изучите их для диагностики.V
Проверка состояния Broker
Подключимся к кластеру через клиент MySQL:
Проверим состояние Broker:
Если Alive = true, Broker работает нормально.
Простой пример использования
Смена пароля пользователя root
Например, установим пароль root:
Создание базы и таблицы
Число реплик в StarRocks не может превышать число узлов BE. Так как в примере только один узел BE, при создании таблиц обязательно указывайте одну реплику.
Создадим базу данных:
Создадим таблицу customer без секционирования, распределенную по хэшу c_custkey на 10 бакетов, с одной репликой:
Вставка тестовых данных
Простой запрос
Использование графических инструментов
StarRocks совместим с протоколом MySQL. При подключении через графические инструменты его можно рассматривать как прямое подключение к MySQL. Например, в SQLyog укажите IP сервера, имя пользователя, пароль и порт (порт для запросов FE по умолчанию — 9030) — после чего подключайтесь.
Развертывание в Docker
Если у единственного сервера достаточно ресурсов (оперативная память, дисковое пространство и т. п.), можно развернуть несколько экземпляров FE/BE на одном узле с использованием Docker. Однако из-за конкуренции за ресурсы такой подход по-прежнему не рекомендуется для продуктивной среды.
Кроме запуска StarRocks в Docker-контейнерах, можно сохранить контейнер, подготовленный на шаге «Глава 1.2: подготовка среды», как образ и использовать его для ускоренного масштабирования кластера.
Контейнеризованное развертывание и эксплуатация в этой главе не рассматриваются. Отдельная документация опишет «развертывание в один клик» одноузлового StarRocks на базе Docker.
Приложение 1: дерево каталогов пакета развертывания StarRocks (частично)
70 открытий1К показов





