Как не наступить на 10 главных граблей Apache Airflow в production: разбираемся на практических примерах

Big Data, Большие данные, обработка данных, Airflow, архитектура, администрирование

Мы уже рассказывали про основные достоинства и недостатки Apache Airflow, с которыми чаще всего можно столкнуться при практическом использовании этого оркестратора конвейеров обработки больших данных (Big Data). Сегодня рассмотрим некоторые специфические ограничения, характерные для этой open-source платформы и способы решения этих проблем на реальных примерах.   Все по плану: 5 особенностей Scheduler’а Планировщик (Scheduler), который отслеживает все задачи и все группы DAG, запуская экземпляры Task, считается самым интересным, но и самым слабым местом Apache Airflow [1]. Он разработан для работы в качестве постоянной службы в production-среде и использует конфигурацию, указанную в конфигурационном файле airflow.cfg. Примечательно, что планировщик не запустит задачи до тех пор, пока не закончится установленный период, который он охватывает. Например, задание с параметром schedule_interval, установленным как @daily, запустится Далее …

Что под капотом Apache Livy: принципы и особенности работы со Spark

AirFlow, Livy, Python, Spark, архитектура, обработка данных, Big Data, большие данные, безопасность, security

Вчера мы рассказывали про особенности совместного использования Apache Spark с Airflow и достоинства подключения Apache Livy к этой комбинации популярных Big Data фреймворков. Сегодня рассмотрим подробнее, как работает Apache Livy, а также за счет чего этот гибкий API обеспечивает удобство работы с Python-кодом и общие Spark Context’ы для разных операторов Airflow и не только. Когда вам нужен с Apache Livy: 5 популярных кейсов Прежде всего, отметим типовые сценарии, когда целесообразно использовать Apache Livy при работе со Спарк [1]: необходима единая сессия Spark (session) для нескольких клиентов, которые достаточно компактны и не перегружены сложными настройками; нужно быстро настроить доступ к кластеру Spark; требуется интегрировать Spark в мобильное приложение; необходимо поддерживать работу нестабильного кластера, не изменяя каждый раз его конфигурацию; нужно организовать Далее …

Зачем вам Apache Livy или как скрестить Spark с Airflow для эффективных Big Data pipeline’ов

Spark, Airflow, обработка данных, архитектура, Livy, большие данные, Big Data

Сегодня поговорим про построение конвейеров обработки данных (data pipeline) на примере совместного использования Apache Spark с Airflow и рассмотрим типовые проблемы этой комбинации. Читайте в нашей статье, как автоматизировать задачи пакетной и потоковой обработки больших данных (Big Data) с помощью гибкого REST-API Apache Livy, включая работу с Python-кодом, отказоустойчивость и безопасность. Что не так с комбо Apache Spark и Airflow: смотрим на примере data pipeline Представим достаточно простой data pipeline, когда необходимо обеспечить запуск Spark-задач по расписанию в рамках следующего ETL-процесса [1]: непрерывный поток приходит с видеокамер, датчиков и других IoT-устройств, данные пишутся в топики Apache Kafka; одно приложение Apache Spark обеспечивает извлечение данных (Extract) в эффективном для хранения и чтения Big Data столбцовом формате, например, Parquet, чтобы далее отправить Далее …

Что такое Airflow Executor: 5 исполнителей задач и 2 их основных ограничения

Big Data, Большие данные, архитектура, обработка данных, AirFlow, Kubernetes, Docker, Spark, Kafka

Недавно мы рассказывали про Airflow Kubernetes Executor, который позволяет выполнять задачи DAG-графа Эйрфлоу в среде Kubernetes, развертывая Docker-контейнер на отдельном пользовательском модуле (pod). Сегодня рассмотрим, какие еще есть исполнители задач в Apache Airflow, как они используются при автоматизации batch-процессов обработки больших данных (Big Data) и с какими проблемами можно столкнуться при их практическом использовании. Что такое Executor в AirFlow: немного об исполнителях задач Напомним, в Airflow задача соответствует узлу DAG-графа, который выполняет какое-либо действие, например, запустить команду оболочки bash, python-скрипт, задание Apache Spark и пр. Перед выполнением задача сначала планируется и помещается в очередь, отсортированную по порядку добавления. Характер выполнения задачи зависит от используемого Executor’а. Как мы уже отметили выше, KubernetesExecutor – это один из возможных видов исполнителей задач в Далее …

AirFlow KubernetesExecutor: 3 способа запуска и 4 главных плюса для DevOps-инженера

Big Data, Большие данные, архитектура, обработка данных, AirFlow, DevOps, Kubernetes, Docker, Spark

Эффективное обучение AirFlow, также как курсы по Spark, Hadoop, Kafka и другим технологиям больших данных (Big Data) также включают нюансы интеграции этого фреймворка с другими средами. Например, вчера мы рассматривали преимущества DevOps-подхода к разработке Data Flow на примере взаимосвязи Apache Airflow с Kubernetes посредством специальных операторов. Продолжая эту тему, сегодня расскажем, что такое KubernetesExecutor: как он устроен и каким образом позволяет работать с Airflow. Как запустить AirFlow—DAG в Kubernetes: 2 способа Предположим, имеется batch-процесс обработки Big Data в виде цепочки задач (DAG, Directed Acyclic Graph) в Эйрфлоу. Задачи этой DAG-цепочки необходимо выполнить в среде Kubernetes (K8s), запустив соответствующий Docker-контейнер на доступном рабочем узле кластера Elasticsearch. Это можно сделать следующими способами [1]: использовать KubernetesPodOperator, который выполняет конкретную задачу в модуле (pod) Далее …

Что такое AirFlow Kubernetes Operator и как это работает: обзор решений от K8s и Google

Big Data, Большие данные, архитектура, обработка данных, AirFlow, DevOps, Kubernetes, Docker

Вчера мы рассказали, почему запускать Airflow на Kubernetes – это эффективно и выгодно для всех участников batch-процессов с большими данными (Big Data): разработчиков Data Flow, Data Scientist’ов, аналитиков и инженеров. Сегодня рассмотрим, что такое Airflow Kubernetes Operator и чем он отличается от подобной разработки компании Google. Как работает AirFlow Kubernetes Operator от K8s и чем он хорош Начнем с уточнения понятия оператора Эйрфлоу. По сути, оператор определяет задачу. В частности, при создании DAG для отправки задания (job) в Apache Spark или определения собственной функции на языке Python, пользователь Эйрфлоу будет использовать оператор, например, «SparkSubmitOperator» или «PythonOperator» соответственно. По умолчанию фреймворк включает набор встроенных операторов для Apache Spark, Hive, BigQuery и Amazon EMR. Также этот batch-фреймворк позволяет DevOps-инженерам разрабатывать свои собственные Далее …

AirFlow на Kubernetes: DevOps-подход к автоматизации batch-процессов в Big Data

Big Data, Большие данные, архитектура, обработка данных, AirFlow, ETL, DevOps, Kubernetes, Docker

Чтобы обучение Airflow было максимально приближенным к практике, сегодня мы поговорим про особенности реального внедрения этого фреймворка для разработки, планирования и мониторинга пакетных процессов обработки больших данных (Big Data) с учетом современного DevOps-подхода. Читайте в нашей статье, зачем вообще нужна связка Apache Эйрфлоу с Kubernetes и как это реализовать технически. Что общего между AirFlow и Kubernetes и при чем здесь DevOps Напомним, Kubernetes – это программное обеспечение для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями. В области Big Data эта платформа управления контейнерами позволяет параллельно запускать множество задач, распределённых по тысячам приложений (микросервисов), расположенных на различных кластерах: публичном облаке, собственном датацентре, клиентских серверах и т.д. Сегодня Kubernetes считается профессиональным стандартом де-факто для каждого DevOps-инженера, обеспечивая непрерывную интеграцию, развертывание и поставку Далее …

7 достоинств и 5 недостатков Apache AirFlow

Big Data, Большие данные, архитектура, обработка данных, AirFlow, ETL, Spark, Hive, Hadoop

Продолжая говорить про обучение Airflow, сегодня мы рассмотрим ключевые преимущества и основные проблемы этой библиотеки для автоматизации часто повторяющихся batch-задач обработки больших данных (Big Data). Также мы собрали для вас пару полезных советов, как обойти некоторые ограничения Airflow на примере кейсов из Mail.ru, IVI и АльфаСтрахования. Чем хорош Apache AirFlow: главные плюсы Проанализировав прикладное назначение и функциональные возможности Apache Airflow, можно сделать выводы, что главными положительными качествами этого фреймворка для разработки, планирования и мониторинга пакетных процессов работы с большими данными являются следующие: небольшой, но полноценный инструментарий создания процессов обработки данных и управления ими – 3 вида операторов (сенсоры, обработчики и трансферы), расписание запусков для каждой цепочки задач, логгирование сбоев [1]; графический веб-интерфейсдля создания конвейеров данных (data pipeline), который обеспечивает относительно Далее …

ETL для пакетов Big Data: 3 примера использования Apache AirFlow

Big Data, Большие данные, бизнес-процессы, цифровизация, цифровая трансформация, бизнес, ритейл, обработка данных, NiFi, AirFlow, ETL, Hadoop, Spark, Hive, AirFlow

В этой статье мы поговорим про Apache AirFlow — эффективный инструмент для пакетных ETL-задач при работе с большими данными (Big Data): что это такое, как работает и чем полезен для инженера данных (Data Engineer). Также рассмотрим несколько практических примеров реального использования этой библиотеки для разработки, планирования и мониторинга batch-процессов. Что такое ETL и при чем здесь Apache AirFlow Процессы ETL (Extract, Transform, Load) являются неотъемлемой частью современных систем бизнес-аналитики (BI, Business Intelligence) и используются для интеграции множества корпоративных информационных систем с целью унификации и анализа хранимых в них данных [1]. Можно сказать, что сегодня ETL – это обязательный компонент корпоративной инфраструктуры на базе технологий Big Data, когда исходные («сырые») данные превращаются в информацию, пригодную для бизнес-анализа. ETL включает следующие этапы: Далее …

Apache Airflow

В этой статье я бы хотел рассказать об основных концепциях Airflow и как с ним работать. Что такое Airflow? Airflow – это open-source оркестратор для управления процессами загрузки и обработки данных. Если у вас есть большое количество задач, запускаемых на cron, особенно, если между ними есть зависимости, то Airflow может вам сильно помочь. Основные его преимущества – это несложная инсталяция и первые шаги, хорошая визуализация, а также возможность автоматически создавать большое число задач и широкие возможности кастомизации. Основной объект Airflow – это направленный ацикличный граф (DAG). Узлы DAG – это task (задачи, которые выполняют основную работу). Между task’ами есть связи. Как следует из определения, циклов в зависимостях быть не может. DAG в Airflow может состоять из множества веток, различных ветвлений Далее …