Архитектура

Apache Hadoop — это платформа с открытым исходным кодом (open source) для распределенной обработки, хранения и анализа больших данных (big data). Экосистема платформы Hadoop включает в себя различные компоненты, такие как распределённая файловая система HDFS, менеджер ресурсов YARN, средства пакетной обработки неструктурированных и слабоструктурированных данных MapReduce, средства выполнения запросов Hive и Pig и другие. Более подробную информацию об используемых в MCS компонентах и их версиях можно посмотреть в разделе «Описание и версии компонентов».

MCS Hadoop является облачным решением, позволяющим разворачивать и использовать кластеры на базе платформы Hadoop в публичном облаке Mail.Ru Cloud Solutions. Сервис MCS Hadoop обеспечивает доступную и экономичную систему для обработки больших объемов данных. В рамках сервиса вы можете использовать популярные компоненты экосистемы Hadoop, такие как HDFS, MapReduce, Spark, Hive и др. С помощью данных компонентов как отдельных кубиков возможно реализовать различные сценарии для извлечения, преобразования, загрузки, хранения и обработки больших данных. 

Архитектура сервиса

Кластеры Hadoop и Spark создаются на базе инфраструктуры сервиса Infra Mail.Ru Cloud Solutions. Кластеры Hadoop любых конфигураций предполагают наличие одного головного (head) узла и минимум трех рабочих (worker) узлов. Масштабирование кластера осуществляется при помощи увеличения количества рабочих узлов. 

При создании кластера в облаке MCS выделяются следующие ресурсы: 

  • одна виртуальная машина для головного узла;

  • n виртуальных машин для рабочих узлов, где n — число узлов;

  • n+1 дисков в кластере Ceph для каждого узла;

  • две группы безопасности — одна для головного узла и одна для рабочих узлов;

  • один плавающий IP-адрес для головного узла.

Все машины во внутренней сети облака MCS связаны друг с другом сетью 10 Gbps в режиме высокой доступности: даже если выйдет из строя один из сетевых адаптеров физического сервера или один из внутренних маршрутизаторов, то сервер останется в сети. При этом внешнее соединение с сетью Интернет доступно на скорости до 1 Gbps.

Все виртуальные машины кластера объединяются в общую сеть на базе технологии VXLAN. На каждом узле настроен внутренний (приватный) IP-адрес, который используется для взаимодействия узлов кластера. При этом по умолчанию после запуска кластера разрешен полный доступ между узлами кластера в рамках внутренней сети. Головной узел также имеет плавающий IP-адрес, который может использоваться для доступа к веб-интерфейсу Ambari и подключения к машине по SSH. При необходимости SSH доступ к рабочим узлам осуществляется через головной узел.



Описание и версии компонентов

Сервис MCS Hadoop основан на платформе Hortonworks Data Platform (HDP) версии 2.6. HDP — это готовый к промышленному использованию надежный и проверенный дистрибутив компонентов Apache Hadoop, отвечающий всем потребностям по обработке, хранению и анализу данных с использованием всех возможностей развитой экосистемы Apache Hadoop.

В рамках сервиса MCS Hadoop и релиза HDP 2.6 доступны следующие компоненты:


Компонент

HDP 2.6

Описание

HDFS

2.7.3

Распределённая файловая система Apache Hadoop.

YARN

2.7.3

Планировщик ресурсов экосистемы Hadoop.

MapReduce2

2.7.3

Сервис обработки данных при помощи парадигмы MapReduce.

Tez

0.7.0

Фреймворк для обработки запросов, работающий поверх YARN.

Hive

1.2.1000

Система хранения данных (data warehouse) для анализа больших наборов данных и ad-hoс запросов при помощи SQL.

HBase

1.1.2

Нереляционная (NoSQL) распределенная база данных, плюс высокопроизводительный SQL-уровень для приложений с низкой задержкой.

Pig

0.16.0

Платформа для обработки больших данных при помощи скриптов.

Sqoop

1.4.6

Инструмент для передачи массивов данных между Apache Hadoop и структурированными хранилищами данных (например, реляционными базами данных).

Oozie

4.2.0

Система для управления рабочими потоками и выполнения повторяющихся задач в экосистеме Hadoop. Включает установку необязательной веб-консоли Oozie Web Console, использующей библиотеку ExtJS.

ZooKeeper

3.4.6

Централизованный сервис для высоконадежной распределенной координации.

Falcon

0.10.0

Платформа для управления данными и их обработки.

Storm

1.1.0

Фреймворк для обработки потоковых данных.

Flume

1.5.2

Распределенный сервис для сбора, агрегирования и переноса большого объема потоковых данных в HDFS.

Accumulo

1.7.0

Надежное, масштабируемое, высокопроизводительное распределенное key-value хранилище.

Ambari Infra

0.1.0

Основная общая служба, используемая всеми компонентами под управлением Ambari.

Ambari Metrics

0.1.0

Система для сбора метрик кластера с возможностью хранения и извлечения собранных метрик.

Atlas

0.8.0

Платформа для управления метаданными кластера.

Kafka

0.10.1

Распределенная система передачи сообщений с высокой пропускной способностью.

Knox

0.12.0

Сервис, предоставляющий единую точку аутентификации и доступа к сервисам кластера Hadoop.

Log Search

0.5.0

Инструмент для агрегирования, анализа и визуализации журналов, используемый в сервисах под управлением Ambari. Находится на стадии Technical Preview.

Ranger

0.7.0

Сервис для обеспечения всесторонней безопасности кластера Hadoop.

Ranger KMS

0.7.0

Сервер управления ключами защиты.

SmartSense

1.4.4.2.6.1.0-143

Инструмент для быстрого сбора настроек, метрик и журналов с сервисов кластера Hadoop. Выдает рекомендации для конкретного кластера и помогает с оперативным разрешением проблем.

Spark

1.6.3

Быстрая и универсальная платформа для обработки больших массивов данных.

Spark2

2.2.0

Быстрая и универсальная платформа для обработки больших массивов данных.

Zeppelin Notebook

0.7.3

Веб-блокнот для интерактивного анализа данных. Позволяет создавать красивые интерактивные документы с возможностью совместного редактирования, содержащие элементы SQL, Scala и т.д.

Druid

0.10.1

Быстрое распределенное столбцовое хранилище данных.

Kerberos

1.10.3-10

Сетевой протокол аутентификации, основанный на концепции мандатов (tickets). Позволяет узлам, обменивающимся данными по незащищенному каналу, безопасно провести идентификацию друг друга.

Mahout

0.9.0

Платформа для создания бесплатных реализаций распределенных или иначе масштабируемых алгоритмов машинного обучения. Используется преимущественно для задач коллаборативной фильтрации, кластеризации и классификации.

Slider

0.92.0

Фреймворк для развертывания существующих распределенных приложений при помощи YARN с возможностью управления и мониторинга.

Superset

0.15.0

Платформа для проведения интерактивного разведочного анализа данных.


Версии компонентов могут меняться без предварительного уведомления. Используйте веб-интерфейс Ambari для просмотра актуальных версий компонентов.

Шаблоны и компоновка кластеров

Для удобства развертывания и использования в рамках сервиса Hadoop MCS предоставляются следующие преднастроенные шаблоны:

  • Hadoop. Компоновка для решения широкого спектра задач по обработке больших данных при помощи технологии MapReduce. Шаблон ориентирован на пакетную (batch) обработку данных, когда допустимое время ожидания результата составляет 10 и более минут.

  • Spark. Компоновка для параллельной обработки больших данных в памяти. Шаблон ориентирован на быструю обработку данных в приближенном к реальному времени режиме.

В таблице ниже показан состав предоставляемых в MCS шаблонов для запуска кластера Hadoop:

Шаблон

Шаблон Hadoop

Шаблон Spark

YARN

ZooKeeper

HDFS

MapReduce2

Spark2


Ambari

Tez

Hive

Pig

Sqoop

Oozie

Zeppelin


Jupyter


Livy


Slider