Что такое 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 может состоять из множества веток, различных ветвлений Далее …

Что такое AirFlow?

Планируем рабочие процессы вместе с Apache Airflow Почему Apache Airflow? Большинство процессов обработки данных строятся на определении набора «задач» для извлечения, анализа, преобразования, загрузки и хранения данных. Например, последовательность обработки данных может состоять из таких задач, как чтение логов из S3, создание задания Spark для извлечения соответствующих объектов, индексирование объектов с помощью Solr и обновление существующего индекса для расширения поиска. Чтобы автоматизировать процесс и запускать его еженедельно, вы можете использовать планировщик времени, например Cron, определяя рабочие процессы в Crontab. Это действительно отлично подходит для простых рабочих процессов, но все становится хуже, когда вы начинаете поддерживать рабочий процесс в крупных проектах, где между элементами существуют зависимости. Еще это усложняется, если вы ждете каких-то входных данных от сторонних разработчиков, или другие команды Далее …