Кратко:
- Yandex Data Proc автоматизирует создание кластеров Hadoop и Spark, настройку сети, установку ПО и обновление.
- Сервис интегрируется с другими сервисами Yandex Cloud и автоматически масштабирует ресурсы.
- В кластер Data Proc входят Tez, Spark, Hive, ZooKeeper, HBase, Sqoop, Oozie, Flume, Livy, Zeppelin.
- Сервис интегрирован с Yandex DataSphere для разработки моделей машинного обучения.
- Кластер Data Proc состоит из подкластеров с управляющими хостами, хостами для хранения данных и обработки данных.
- Хранение данных осуществляется в объектном хранилище, а на вычислительных узлах хранятся только горячие данные.
- Для работы с кластером Data Proc рекомендуется использовать два бака в объектном хранилище.
- Все подкластеры должны находиться в одной сети, а все хосты каждого подкластера - в определённой подсети этой сети.
Обзор Yandex Data Proc
Создавать кластеры Hadoop и Spark вручную — непростое и небыстрое занятие. Нужно настроить виртуальные машины (ВМ), развернуть сервисы, изменить множество конфигурационных файлов...
Сервис Yandex Data Proc автоматически создаст кластеры Hadoop или Spark, настроит сеть, установит ПО и обновит его, когда выйдет новая версия. В сервисе есть интерфейсы запуска заданий и инструменты мониторинга. Data Proc интегрируется с другими сервисами Yandex Cloud и автоматически масштабирует ресурсы.
Компоненты Data Proc
В развёрнутый кластер, помимо самого Hadoop, будут включены следующие компоненты.
Tez — фреймворк для обработки больших данных, содержащий ряд улучшений технологии MapReduce.
Spark — фреймворк для распределённой потоковой обработки данных.
Hive — платформа для хранения больших данных в распределённом хранилище и для управления ими.
ZooKeeper — служба, координирующая работу приложений. Она хранит информацию о настройках системы, обеспечивает синхронизацию распределённого выполнения групповых задач, выявляет конфликтующие задачи и нерациональное использование ресурсов.
HBase — распределённая NoSQL база данных (БД), основанная на модели Google BigTable и использующая HDFS. Её основная задача — хранить очень большие таблицы (миллиарды строк и миллионы столбцов) на узлах кластера.
Sqoop — инструмент для передачи данных между Hadoop и реляционными БД. С его помощью можно импортировать данные из реляционных СУБД в Hadoop, преобразовать их с использованием MapReduce, а затем экспортировать обратно.
Oozie — инструмент для управления рабочим процессом и координации заданий MapReduce. Может объединить несколько задач в единое логическое задание.
Flume — распределённая служба, которая собирает, сортирует и перемещает большие объёмы данных журнала событий. Она может обрабатывать потоковые данные, позволяя создавать аналитические приложения для всей экосистемы Hadoop.
Livy — служба, которая через REST-интерфейс обеспечивает взаимодействие с кластером Spark, включая отправку заданий или частей кода Spark, а также синхронное или асинхронное получение результатов.
Zeppelin — многопользовательский инструмент для анализа и визуализации данных в браузере, а также совместной работы над данными с использованием Spark. Позволяет создавать запросы к данным в Hadoop на SQL, Scala или Python и отображать результаты в виде таблиц, графиков и диаграмм.
Сервис Yandex Data Proc интегрирован с Yandex DataSphere — облачной средой для разработки моделей машинного обучения. С её помощью можно пройти весь цикл создания моделей: от эксперимента и разработки до запуска готовой версии на вычислительных мощностях Yandex Cloud. DataSphere использует бессерверные вычисления, но если вам предстоит решать ресурсоёмкие задачи, то расчёты можно запустить и на вашем кластере Data Proc.
Кластер Data Proc
Основная сущность сервиса Data Proc — кластер. Он объединяет все ресурсы, доступные Hadoop: вычислительные мощности и хранилище.
Каждый кластер состоит из подкластеров. Подкластеры объединяют хосты, выполняющие идентичные функции:
- подкластер с управляющими хостами (например NameNode для HDFS или ResourceManager для YARN);
- подкластер для хранения данных (например DataNode для HDFS);
- подкластеры для обработки данных (например NodeManager для YARN).

Подкластеры каждого кластера должны находиться в одной облачной сети и одной зоне доступности.
Хранение данных
Чтобы вы не переплачивали за хранение большого объёма данных на вычислительных узлах, в сервисе реализована связь с объектным хранилищем. В него помещается основной объём данных, а на вычислительных узлах хранятся только горячие данные, к которым нужен быстрый доступ.

Вы можете запускать задания по SSH — без непосредственного доступа к кластеру Data Proc. Поэтому, чтобы вам было удобно, журнал выполнения заданий находится в отдельном бакете в объектном хранилище. Записи в журнал делаются от имени сервисного аккаунта, указанного при создании кластера.
Для кластера Data Proc рекомендуется использовать хотя бы два бакета в объектном хранилище. Один, где сервисный аккаунт имеет права только на чтение, — для исходных данных. Второй, с полным доступом сервисного аккаунта — для журналов и результатов операций. Два бакета помогут уменьшить риски непредвиденных изменений и удаления исходных данных.
Сеть
Все подкластеры должны находиться в одной сети, а все хосты каждого подкластера — в определённой подсети этой сети.
У хостов кластера нет публичного IP-адреса. Чтобы подключиться к кластеру Data Proc, используйте ВМ, расположенную в той же облачной сети, что и кластер. То есть вы создадите ВМ, к которой подключитесь по SSH, а с этой машины, в свою очередь, подключитесь к кластеру.
В Yandex Cloud хосты без публичных IP-адресов не имеют доступа к ресурсам за пределами виртуальной сети. Поэтому для корректной работы кластера включите NAT в интернет для нужной подсети: зайдите в раздел Virtual Private Cloud в каталоге с кластером Data Proc, выберите подсеть и включите для неё эту опцию.