Кратко:
- Создание кластера Hadoop с помощью сервиса Yandex Data Proc.
- Создание бакет в объектном хранилище для хранения зависимостей заданий.
- Создание сервисного аккаунта для доступа к кластеру с ролью mdb.dataproc.agent.
- Выбор сервиса Data Proc, создание кластера с именем и версией образа 1.4.
- Ввод публичного ключа SSH-ключа для доступа к кластеру.
- Выбор зоны доступности для кластера и бакета в объектном хранилище.
- Создание подкластеров для хранения данных, вычислений и управления.
- Настройка подкластеров с числом и классом хостов, размером и типом хранилища.
- Автоматическое масштабирование подкластеров с использованием системных метрик нагрузки на кластер.
- Завершение создания кластера и сохранение его для использования на следующем уроке.
Практическая работа. Создание кластера Hadoop
На этом уроке вы создадите и настроите кластер Hadoop с помощью сервиса Yandex Data Proc. Hadoop предназначается для работы с большими данными, поэтому создание кластера потребует от вас больше усилий, чем на предыдущих практических работах (но гораздо меньше, чем если бы вы делали это самостоятельно).
Создание кластера
Для хранения зависимостей заданий нашего кластера и результатов их выполнения нужно предварительно создать бакет в объектном хранилище. О том, как это сделать, мы рассказывали на одном из предыдущих занятий.
Также создайте сервисный аккаунт для доступа к кластеру. Обратите внимание: можно использовать только аккаунт с ролью
mdb.dataproc.agent. Для автоматического масштабирования кластера сервисному аккаунту также понадобятся роли editor и dataproc.agent.Откройте каталог, где будете создавать кластер, и выберите сервис Data Proc.

В открывшемся окне нажмите кнопку Создать кластер.
Задайте для кластера имя и выберите версию образа — 1.4. В образ включена одна из версий Hadoop и дополнительные компоненты. Некоторые вы можете устанавливать по выбору. Кроме того, в каждую версию образа входит Conda (менеджер окружений для Python) и набор инструментов машинного обучения (scikit-learn, TensorFlow, CatBoost, LightGBM и XGBoost).
Обратите внимание на то, что некоторые из сервисов обязательны, чтобы использовать другие. На следующем уроке нам понадобится сервис HIVE. Выберите его, и рядом с MAPREDUCE и YARN вы увидите напоминания о том, что они нужны для HIVE.

Вставьте в поле публичный ключ публичную часть SSH-ключа. Как сгенерировать и использовать SSH-ключи, мы рассказывали в одной из практических работ о виртуальных машинах.
Выберите созданный сервисный аккаунт для доступа к кластеру.
Выберите зону доступности для кластера. Все подкластеры будут находиться в этой зоне.
Если нужно, задайте свойства Hadoop и его компонентов. Доступные свойства перечислены в документации.

Выберите бакет в объектном хранилище, где будут храниться зависимости заданий и результаты их выполнения.
Выберите или создайте сеть для кластера. Включите опцию NAT в интернет для подсетей, в которых размещается кластер.
Если нужно, создайте группу безопасности. Правила для неё вы добавите позже в сервисе Virtual Private Cloud.
Включите опцию UI Proxy, чтобы получить доступ к веб-интерфейсам компонентов Data Proc. У некоторых компонентов (например Hadoop, Spark, YARN и Zeppelin) есть пользовательские веб-интерфейсы, доступные на мастер-узле кластера. С помощью этих интерфейсов вы можете:
- отслеживать ресурсы кластера и управлять ими (YARN Resource Manager, HDFS NameNode);
- просматривать статус и отлаживать задания (Spark History, JobHistory);
- проводить эксперименты, совместно работать или выполнять отдельные операции (Zeppelin).
Подробности об интерфейсах вы найдёте в документации.
Настройка подкластеров
В состав кластера входит один главный подкластер (Мастер) с управляющим хостом, а также подкластеры для хранения данных (Data) или вычислений (Compute).

В подкластерах Data можно разворачивать компоненты для хранения данных, а в подкластерах Compute — для обработки данных. Хранилище в подкластере Compute предназначено только для временного хранения обрабатываемых файлов.
Для каждого подкластера можно задать число и класс хостов, размер и тип хранилища, а также подсеть той сети, в которой расположен кластер. Кроме того, для подкластеров Compute можно настроить автоматическое масштабирование. Это позволит выполнять задания на обработку данных быстрее без дополнительных усилий с вашей стороны.
Создадим подкластер Compute с одним хостом.
В блоке Добавить подкластер нажмите кнопку Добавить.
В поле Роли выберите
COMPUTENODE. В блоке Масштабирование включите опцию Автоматическое масштабирование.
Все открывшиеся настройки знакомы вам из практических работ по созданию виртуальных машин.
Автоматическое масштабирование подкластеров обработки данных поддерживается в кластерах Yandex Data Proc версии 1.2 и выше. Чтобы оно работало, в кластере с установленным Spark или Hive должен быть также установлен сервис YARN.
Yandex Data Proc автоматически масштабирует кластер, используя для этого системные метрики нагрузки на кластер. Когда их значение выходит из установленного диапазона, запускается масштабирование. Если значение метрики превысит порог, в подкластер добавятся хосты. Если опустится ниже порога, начнётся декомиссия (высвобождение ненужных ресурсов), а избыточные хосты удалятся.

По умолчанию для масштабирования используется внутренняя метрика YARN (
yarn.cluster.containersPending). Она показывает, сколько единиц ресурсов нужно заданиям в очереди. Выбирайте эту опцию Масштабирование по умолчанию, если в кластере выполняется много относительно небольших заданий.Другой вариант — масштабирование на основе метрики загрузки процессора (vCPU). Чтобы использовать его, отключите опцию Масштабирование по умолчанию и укажите целевой уровень загрузки vCPU.
Настроив подкластеры, нажмите кнопку Создать кластер.
Сервис запустит создание кластера. После того как статус кластера изменится на Running, вы сможете подключиться к любому активному подкластеру с помощью указанного в настройках SSH-ключа.
Завершив практическую работу, не удаляйте кластер: он понадобится вам на следующем уроке.