29.06.2022

Миграция решений с Azure DataBricks в Yandex DataProc

Николай Курбатов, аналитик данных, Beltel Datanomics

Аналитика больших данных является одной из самых быстрорастущих областей в мире из-за огромного количества преимуществ, которые можно получить с ее помощью. Xранение, анализ и передача больших данных предполагает использование специальных фреймворков. Наиболее используемые – Spark и Hadoop. Существует множество облачных сервисов, которые предоставляют эти фреймворки для пакетной и потоковой обработки, передачи данных, их хранения и построения сложной аналитики c применением методов машинного обучения.

В силу различных факторов разработчикам иногда приходится переносить свои решения из одного сервиса на другой. Во время переноса могут возникать проблемы, о которых мы расскажем на примере переноса пайплайна обработки данных из сервиса Azure DataBricks в Yandex Cloud DataProc.

О сервисе Yandex Cloud DataProc

Yandex Cloud DataProc – это управляемый сервис Spark и Hadoop, который позволяет быстро создавать кластеры и легко управлять ими, что помогает сократить временные затраты на администрирование и сосредоточиться на работе с данными.

DataProc имеет встроенную интеграцию с другими сервисами в Yandex Cloud, такими как Managed Service for Apache Kafka, Clickhouse, S3 Object Storage, Мониторинг и Cloud Logging.

В Yandex Cloud DataProc есть возможность выбора сервисов для конфигурирования и управления кластером: YARN, HBase, Flink, Hive, Zepplin, Zookeeper и другие.

О переносе решения

Наше решение состояло из проекта на python для интерфейса PySpark. Главный скрипт запускался как задача внутри UI DataBricks. В качестве основного хранилища данных использовался Azure Blob Storage (Рис.1).

Рисунок 1. Архитектура решения в Azure

При переходе стоит обратить внимание на версии Spark в сервисах. Последняя версия в Yandex Cloud DataProc – 3.0.2. Если проект требует больших изменений при смене версий, то целесообразнее изменить конфигурацию кластера при его создании.

В DataBricks есть встроенная функция управления задачами Workflows, которая по расписанию поднимает кластер и выполняет задачу. Все остальное время кластер выключен и не тарифицируется. В DataProc нет такой возможности. Вместо этого можно использовать workflow менеджер – Apache Airflow. Это более гибкий инструмент контроля выполнения задач, который позволяет описать workflow в виде направленного ацикличного графа на языке python.

В Yandex Cloud для создания аналогичного DataBricks workflow, понадобится инстанс с Airflow, сам кластер DataProc и S3 Object Storage (Рис.2). Перед созданием кластера необходимо:

  • разрешить кластеру все необходимые правила для входящего и исходящего трафика (настройка групп безопасности);
  • в рабочей подсети включить NAT, чтобы мастер нода смогла взаимодействовать c сервисами Yandex Cloud или хостами в других сетях;
  • создать сервисный аккаунт, который будет давать доступ кластеру на создание инстанс-групп при автомасштабировании, на запись и чтение в S3 хранилище, на просмотр мониторинга нод и логирования.

Рисунок 2. Архитектура решения в Yandex Cloud

Тестировать задачи и управлять кластером можно через proxy сервисы, IDE приложения или подключаясь напрямую к нодам с промежуточной виртуальной машины по ssh (ВМ). Для этого ВМ нужно разместить в той же подсети и выбрать ту же группу безопасности, что и у кластера DataProc, дополнительно установив в ней правила трафика.

При конфигурировании Airflow нужно указать подключение к Yandex Cloud в настройках connections. Существует несколько вариантов подключения: по OAuth токену и по ключу сервисного аккаунта в виде текста или файла.

Далее можно переходить к созданию графа для запуска кластера, выполнения PySpark задачи и остановки кластера. В версии Airflow 2.2.3 уже созданы DAG операторы удаления, создания и запуска задач на кластере Yandex Cloud DataProc. Однако, чтобы в удобном виде сохранять логи о выполнении задач, можно не удалять кластер, а останавливать его через API Yandex Cloud. Для этого существует CLI утилита для Linux OS – yc.

Таким образом, вычислительный граф имеет вид, представленный на Рис.3.

Рисунок 3. DAG выполнения задачи в Apache Airflow

Сравнение платформ

Заключение

Переход на Yandex Cloud DataProc при отсутствии опыта использования DataProc и Airflow может занять некоторое время и ресурсы. Однако в результате получается более управляемый и гибкий инструмент хранения и обработки больших данных.

Дополнительно:

Построение аналитической платформы в облаке Yandex Cloud (datanomics.ru)

Построение дашборда в Yandex DataLens на примере прогнозирования спроса в ритейле (datanomics.ru)

Облачная аналитика для промышленности. Как внедрять ИИ уже сегодня (datanomics.ru)

Оставьте заявку и получите бюджет и план внедрения наших решений в ваш бизнес

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

    Мы используем файлы cookies, чтобы получать статистику и делать наш сайт и другие сервисы удобными для вас. Продолжая дальнейшее использование сайта и/или его сервисов, вы соглашаетесь с этим. Более подробную информацию можно прочитать в «Политика обработки персональных данных» и в «Политика Cookies»