Apache Ambari¶
Apache Ambari — это программная платформа с открытым исходным кодом, предназначенная для упрощения развёртывания, администрирования, мониторинга и управления кластерами Apache Hadoop. Относится к классу инструментов управления большими данными (Big Data), предоставляя веб-интерфейс и REST API для централизованного управления компонентами экосистемы Hadoop.
¶История
Проект Apache Ambari был основан в 2011 году компанией Hortonworks (в 2018 году объединилась с Cloudera) как ответ на сложность ручной настройки и поддержки кластеров Hadoop. Первоначально Ambari разрабатывался как внутренний инструмент для упрощения установки Hadoop, но вскоре был открыт и передан в инкубатор Apache Software Foundation. В 2013 году проект получил статус «Top-Level Project» (TLP) Apache.
Основным стимулом для создания Ambari стала необходимость автоматизации процесса развёртывания Hadoop, который требовал ручной конфигурации десятков параметров на каждом узле кластера. С развитием экосистемы Hadoop (включение Hive, HBase, Spark, Kafka и других компонентов) Ambari стал стандартным инструментом для управления кластерами, особенно в корпоративной среде.
В 2020 году компания Cloudera (владелец бренда Hortonworks) объявила о прекращении поддержки Community Edition Ambari, сосредоточившись на коммерческом продукте Cloudera Data Platform (CDP). Однако проект остаётся доступным как открытое программное обеспечение, и его развитие продолжается силами сообщества и отдельных организаций.
¶Архитектура
Ambari построен по клиент-серверной архитектуре и состоит из двух основных компонентов:
¶Ambari Server
Центральный сервер, который отвечает за управление конфигурациями, развёртывание, мониторинг и сбор метрик. Сервер хранит состояние кластера в реляционной базе данных (по умолчанию PostgreSQL, также поддерживается MySQL, MariaDB, Oracle). Он предоставляет веб-интерфейс (Ambari Web UI) и REST API.
¶Ambari Agent
Программный агент, устанавливаемый на каждый узел кластера (хост). Агент отвечает за выполнение команд сервера: установку, запуск, остановку и проверку состояния компонентов Hadoop. Он также собирает метрики производительности (загрузка CPU, использование памяти, дисковые операции, сетевой трафик) и передаёт их на сервер.
¶Ambari Metrics System (AMS)
Подсистема сбора и хранения метрик, основанная на Apache Hadoop, Apache HBase и Apache Phoenix. AMS обеспечивает агрегацию и хранение временных рядов данных, которые затем отображаются в веб-интерфейсе в виде графиков и дашбордов.
¶Ambari Blueprints
Функция, позволяющая автоматизировать развёртывание кластера с помощью JSON-файлов, описывающих конфигурацию. Blueprints поддерживают создание кластеров «с нуля» без использования веб-интерфейса, что полезно для DevOps и автоматизации (например, в Docker или Kubernetes).
¶Основные возможности
¶Установка и конфигурация
- Автоматическое развёртывание Hadoop и связанных компонентов (HDFS, YARN, MapReduce, Hive, HBase, Spark, Kafka, ZooKeeper, Oozie, Flume, Sqoop, Ranger, Atlas и др.).
- Мастер установки, который проверяет совместимость версий, зависимости и системные требования.
- Поддержка кластеров с высокой доступностью (HA) для NameNode, ResourceManager, HBase Master, Hive Metastore и других сервисов.
¶Мониторинг и оповещения
- Централизованный дашборд, отображающий состояние кластера: зелёный (работает), жёлтый (предупреждение), красный (ошибка).
- Настраиваемые оповещения (alerts) на основе пороговых значений метрик (например, загрузка диска > 90%, потеря heartbeat агента).
- Интеграция с внешними системами мониторинга (Nagios, Ganglia, Grafana через AMS).
¶Управление конфигурациями
- Версионирование конфигурационных файлов (например,
core-site.xml,hdfs-site.xml,yarn-site.xml). - Возможность отката изменений.
- Динамическое обновление конфигураций без перезапуска кластера (для некоторых сервисов).
¶Управление пользователями и безопасностью
- Интеграция с Kerberos для аутентификации.
- Поддержка Apache Ranger для централизованного управления политиками доступа.
- Ролевая модель (администратор, оператор, наблюдатель).
¶Применение
Apache Ambari широко используется в корпоративных средах для управления кластерами Hadoop, особенно в организациях, где требуется:
- Быстрое развёртывание Hadoop в тестовых и продуктивных средах.
- Централизованное управление конфигурациями на сотнях узлов.
- Мониторинг производительности и оповещение о сбоях.
- Соответствие требованиям безопасности (SOC 2, PCI DSS, GDPR).
Примеры отраслей: финансы (банки, страховые компании), телекоммуникации, розничная торговля, государственные учреждения, научные исследования.
¶Критика и ограничения
- Сложность обновления: Обновление версий Hadoop и компонентов через Ambari может быть трудоёмким и требовать ручного вмешательства.
- Зависимость от базы данных: При сбое сервера Ambari или базы данных управление кластером становится невозможным до восстановления.
- Ограниченная поддержка Kubernetes: В отличие от современных инструментов (например, Cloudera Data Platform, Google Dataproc), Ambari изначально не проектировался для контейнеризации.
- Прекращение поддержки Community Edition: С 2020 года Cloudera не выпускает обновлений для бесплатной версии, что ограничивает использование новых версий Hadoop.
- Производительность: При управлении кластерами более 1000 узлов Ambari может испытывать проблемы с масштабированием.
¶Сравнение с альтернативами
| Инструмент | Тип | Поддержка | Основные особенности |
|---|---|---|---|
| Apache Ambari | Открытый код | Сообщество | Бесплатно, гибкость, поддержка множества компонентов Hadoop |
| Cloudera Manager | Коммерческий | Cloudera | Интеграция с CDP, автоматизация, SLA |
| Hortonworks Data Platform (HDP) | Коммерческий | Cloudera (исторически) | Базируется на Ambari, но с дополнительными плагинами |
| Apache Bigtop | Открытый код | Сообщество | Пакетная установка, тестирование, CI/CD |
| Google Dataproc | Облачный | Google Cloud | Полностью управляемый, интеграция с GCP |
| Amazon EMR | Облачный | AWS | Масштабируемый, интеграция с S3, Spark |
¶Интересные факты
- Ambari является официальным инструментом управления для дистрибутивов Hortonworks Data Platform (HDP) и Hortonworks DataFlow (HDF).
- Название «Ambari» происходит от малагасийского слова, означающего «амбар» или «хранилище».
- В 2015 году проект Ambari был признан Apache Software Foundation одним из самых активных проектов по числу коммитов.
- Ambari поддерживает развёртывание кластеров не только на физических серверах, но и в виртуальных средах (VMware, KVM, Hyper-V) и в облачных инфраструктурах (AWS, Azure, GCP).
¶Источники
- Apache Ambari Project Documentation (Apache Software Foundation)
- Hortonworks Data Platform Documentation (Cloudera)
- «Apache Hadoop Operations» by Eric Sammer (O'Reilly Media)
- «Hadoop: The Definitive Guide» by Tom White (O'Reilly Media)
- Apache Ambari JIRA issue tracker (community updates)
- Cloudera Blog: «The Future of Apache Ambari» (2020)