Управление кластерами и компонентами Arenadata: Полное руководство
Arenadata предоставляет централизованную инфраструктуру для управления всеми продуктами через Arenadata Cluster Manager (ADCM), а также CLI-инструменты, REST API и механизмы автоматизации. Эффективное управление кластерами критично для обеспечения доступности, масштабируемости, отказоустойчивости и обновляемости всех компонентов: ADB, ADQM (QuickMarts), ADPG (Postgres), Catalog, Harmony MDM, LogSearch и Streaming Platform.
Arenadata Cluster Manager (ADCM)
Назначение
ADCM — централизованная платформа для развертывания, конфигурации, масштабирования, мониторинга и обновления всех компонентов Arenadata. Использует агентную архитектуру (agentd) и YAML-бандлы.
Основные функции
- Добавление и настройка хостов
- Управление Inventory (группы, роли, атрибуты)
- Импорт Bundle (описание компонентов и сценариев)
- UI и API-интерфейс для запуска задач
- Логирование и история изменений
- Согласование зависимостей между сервисами
Установка ADCM
sudo rpm -ivh adcm-<версия>.rpm systemctl enable --now adcm firewall-cmd --add-port=8000/tcp --permanent && firewall-cmd --reload
Структура Bundle
- bundle.yaml — описание ролей и зависимостей
- actions/ — задачи (start, stop, install, upgrade)
- config.yaml — параметры, шаблоны по умолчанию
- scripts/ — исполняемые скрипты на bash/python/ansible
Управление компонентами Arenadata через ADCM
Компоненты ADB (Greenplum)
- Роли: master, standby, segment, pxf, gpmon
-
Управление:
- Start/Stop отдельных узлов или всего кластера
- Обновление конфигурации postgresql.conf, pg_hba.conf
- Инициализация/перезапуск gpseg
- Проверка статуса: gpstate, gpcheckperf, gpstart, gpstop
Управление ADQM (QuickMarts / ClickHouse)
- Роли: server, replica, keeper, coordinator
-
Управление:
- Настройка кластерной конфигурации (зон шардирования, репликации)
- Обновление параметров clickhouse-server.xml, users.xml
- Мониторинг delay по репликам, статусов sharding
- Интеграция с BI и ADB для ускоренных витрин (QuickMarts layer)
Управление ADPG (PostgreSQL)
- Роли: postgres-instance, replica
-
Управление:
- Развёртывание мастера и реплик (с использованием repmgr или Patroni)
- Настройка WAL архивации, checkpoint’ов
- Автоматизация PITR сценариев (Point-in-Time Recovery)
- Проверка доступности: pg_isready, pg_stat_replication, pg_stat_activity
- Настройка параметров: max_connections, shared_buffers, work_mem
Управление Arenadata Catalog
- Роли: frontend, backend, storage, airflow (при наличии ingestion)
-
Возможности:
- Изменение параметров API, TTL, автоингестов
- Ротация логов и настройка профилей безопасности
- Интеграция с LDAP и ADCM Monitoring
Управление Harmony MDM
- Роли: ui, api, db, job-executor
-
Управление:
- Обновление модели данных
- Настройка workflow engine
- Управление очередями задач и инцидентами
LogSearch (ELK)
- Компоненты: filebeat, logstash, elasticsearch, kibana
-
Управление:
- Ротация индексов (curator или snapshot API)
- Настройка pipeline и grok-фильтров Logstash
- Бэкап и восстановление через Elastic snapshot repository
Streaming Platform
- Компоненты: kafka, zookeeper, nifi, spark
-
Управление:
- Изменение количества реплик топиков, настройка ACL
- Перезапуск flows в NiFi, проверка registry
- Масштабирование Spark-воркеров и настройка драйверов
Масштабирование
Горизонтальное:
- Добавление новых хостов в ADCM
- Назначение ролей (например, дополнительных сегментов ADB, нод Kafka или ClickHouse)
- Повторный запуск инсталляции/инициализации ролей
Вертикальное:
- Изменение параметров ресурсов (heap size, shared_buffers, etc.)
- Обновление YAML-конфигураций через ADCM или вручную
Обновление компонентов
Подходы:
- Minor: через сценарии в Bundle (upgrade_minor)
- Major: через миграцию конфигураций и откат
Примеры:
adcm update --component adbm --version 6.12.1
- Тестирование после обновления: dry-run mode
- Снапшоты конфигурации: YAML export + pg_dump
CLI и API-управление
adcm-cli
- Просмотр хостов: adcm host list
- Запуск задач: adcm action run --name install --target cluster/adbm
- Получение логов: adcm job log --id <job_id>
REST API
- Аутентификация: токены или basic auth
-
Методы:
- GET /api/v1/cluster/
- POST /api/v1/host/
- POST /api/v1/task/start/
- Подходит для интеграции с CI/CD (Ansible, Jenkins)
Практики и рекомендации
- Использовать роли ADCM только по назначению (не смешивать master и мониторинг)
- Вести документацию Bundle версий и изменений
- Хранить YAML- и JSON-экспорты конфигураций
- Использовать pre-check перед развертыванием новых компонентов
- Регулярно тестировать HA-сценарии (failover, standby promotion)
- Интегрировать с monitoring stack (Prometheus + Alertmanager)
Заключение
Управление кластерами и компонентами Arenadata через ADCM и встроенные утилиты даёт высокий уровень автоматизации, наблюдаемости и согласованности. Архитектура на базе Bundle позволяет стандартизировать эксплуатацию, облегчать обновления, обеспечивать гибкое масштабирование и поддерживать отказоустойчивую аналитику на уровне предприятия.



