Недавно в Google Dataproc появился бессерверный Apache Spark. Разбираемся, что это такое и зачем нужно дата-инженерам. Как работает serverless Spark в облачной платформе Google и почему выбирать между Dataflow и Dataproc стало еще сложнее.
Блеск и нищета Google Dataproc
Напомним, Google Dataproc – это облачный Hadoop, который работает аналогично другим сервисам Goggle Cloud Platform (GCP), позволяя разделить хранилище данных и вычислительные ресурсы, запуская вычисления по запросу с оплатой по мере использования. Так можно сэкономить на ИТ-инфраструктуре и технической поддержке. В Google Cloud есть несколько различных способов организации кластеров и выполнения заданий, таких как шаблоны рабочих процессов и операторы Dataproc для Cloud Composer с управляемым Apache AirFlow, о чем мы писали здесь. Так пользователи могут запускать и отключать кластеры в рамках своих конвейеров данных, не сохраняя их и даже не создавая их заранее.
Однако, чтобы воспользоваться всеми преимуществами облачной платформы необходимо корректно настроить кластер, в т.ч. задать ему правильный размер. Для этого следует понимать рабочую нагрузку и то, как на нее повлияет вертикальное или горизонтальное масштабирование. Эта конфигурация должна быть где-то жестко закодирована, либо в шаблоне рабочего процесса, либо в DAG Composer. Для тестирования корректной настройки кластера может потребоваться много проб и ошибок, чтобы убедиться в наличии нужного количества рабочих процессов, исполнителей, ресурсов (ЦП и ОЗУ) для успешного запуска нагрузки в желаемые сроки. Дополнительно возникает потребность автоматического масштабирования кластера для каждой рабочей нагрузки, чтобы более эффективно использовать облачные ресурсы с экономической точки зрения. В этом поможет бессерверная служба Apache Spark, которая появилась в Google Dataproc в начале 2022 года. Как она работает и почему выбирать между Dataflow и Dataproc стало еще сложнее, мы рассмотрим далее.
Бессерверный Apache Spark в облаке Google
Итак, бессерверная служба (serverless) Spark устраняет проблему предварительного определения размера облачного кластера кластера. Напомним, в бессерверных вычислениях провайдер облачных услуг выделяет машинные ресурсы по требованию, сам заботясь о серверах своих клиентов. Это означает, что при создании заданий Spark можно просто указать Dataproc запустить задание, не заботясь обо всем остальном. Таким образом, дата-инженер может сосредоточиться именно на самой инженерии данных, без необходимости тестировать производительность конвейеров и настройки мощности кластера соразмерно рабочим нагрузкам. Создавать отдельный кластер для каждого инженера слишком долго и дорого, а использование общего кластера может вызвать проблемы, связанные с конкуренцией.
С бессерверной службой Spark не требуется ресурсоемкое управление инфраструктурой: все операции, от обновлений до мониторинга, делаются облачным провайдером. Вместо того, чтобы тратить время на создание кластера, достаточно просто запустить команду gcloud dataprocbatches submit. Dataproc Serverless позволяет запускать пакетные рабочие нагрузки Spark, не требуя подготовки и управления собственным кластером. Следует лишь указать параметры рабочей нагрузки и отправить ее службе Dataproc Serverless. Служба будет запускать рабочую нагрузку в управляемой вычислительной инфраструктуре, автоматически масштабируя ресурсы по мере необходимости. Плата за Dataproc Serverless применяется только к тому времени, когда выполняется рабочая нагрузка. Бессерверная служба выполнять следующие типы рабочих нагрузок Spark: PySpark, Spark SQL, а также программы на языках R и Scala/Java.
Для пакетной обработки рабочую нагрузку Dataproc Serverless для Spark можно запланировать как часть рабочего процесса Airflow или Cloud Composer с помощью оператора пакетной обработки Airflow. Таким образом, Dataproc на Compute Engine идеально подходит для пользователей, которые хотят подготовить инфраструктуру и управлять ею, а затем выполнять рабочие нагрузки в Spark и других платформах обработки с открытым исходным кодом.
Примечательно, что serverless Spark ликвидирует разрыв между двумя разными продуктами облачной платформы Google — Dataproc и Dataflow с точки зрения операций, делая выбор между ними еще более сложным.
Dataflow — это встроенная в Google Cloud бессерверная платформа обработки аналитики для запуска Apache Beam. Dataflow был бессерверным изначально, позволяя написать задание и отправить его, оставив Google оркестровку и масштабирование инфраструктуры. Dataflow отличный вариант для начала перехода к облачной инфраструктуре. Dataflow работает на других платформах, таких как Spark и Kubernetes. Но, если инфраструктура построена на экосистеме Hadoop и стоит задача ее переноса в облако, можно перенести рабочие нагрузки в Google Cloud с помощью Dataproc.
Освойте эти и другие практические тонкости применения Apache Spark и AirFlow для задач дата-инженерии, разработки распределенных приложений и аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Data Pipeline на Apache Airflow
- Основы Apache Spark для разработчиков
- Анализ данных с Apache Spark
- Потоковая обработка в Apache Spark
- Машинное обучение в Apache Spark
- Графовые алгоритмы в Apache Spark
Источники