Apache Airflow установка: Пошаговая инструкция для Linux и Docker | AdminWiki

Apache Airflow установка: Полное руководство для разработчиков и DevOps

27 декабря 2025 9 мин. чтения #airflow установка #apache airflow #devops #etl #python #workflow #оркестрация данных
Содержание статьи

Представь, что тебе нужно автоматизировать сложные пайплайны обработки данных, которые запускаются по расписанию, зависят друг от друга и требуют мониторинга. Apache Airflow — это именно тот инструмент, который превращает эту задачу из головной боли в удовольствие. Давай разберем, как правильно выполнить установку Apache Airflow с нуля, чтобы ты мог быстро начать создавать свои первые DAG (Directed Acyclic Graph).

Подготовка окружения для установки Airflow

Перед тем как начать установку Apache Airflow, убедись, что у тебя есть подходящее окружение. Airflow написан на Python, поэтому нам потребуется:

  • Python 3.8+ (рекомендуется 3.9 или 3.10)
  • pip (менеджер пакетов Python)
  • База данных (PostgreSQL, MySQL или SQLite для разработки)
  • Достаточно оперативной памяти (минимум 4GB)
Важно: Для production-окружения НЕ используй SQLite. Выбирай PostgreSQL или MySQL, так как они поддерживают параллельное выполнение задач.

Установка Apache Airflow через pip

Самый простой способ установки — использование pip. Давай рассмотрим пошаговый процесс.

Шаг 1: Установка зависимостей

Сначала установим системные зависимости (на примере Ubuntu/Debian):

bash
sudo apt-get update
sudo apt-get install -y python3-pip python3-dev \
  libpq-dev build-essential

Шаг 2: Настройка переменных окружения

Airflow требует определенных переменных окружения. Установим их:

bash
# Указываем версию Airflow (рекомендуется последняя стабильная)
export AIRFLOW_VERSION=2.8.1

# Устанавливаем ограничения версий Python
export PYTHON_VERSION="$(python3 --version | cut -d \" \" -f 2 | cut -d \".\" -f 1-2)"

# Определяем URL для ограничений
export CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

# Проверяем URL
curl -O $CONSTRAINT_URL || echo "Проверь версии!"

Шаг 3: Установка Airflow

Теперь установим сам Airflow с ограничениями версий:

bash
pip install \
  "apache-airflow==${AIRFLOW_VERSION}" \
  --constraint "${CONSTRAINT_URL}"
Внимание: Установка может занять несколько минут. Если возникают ошибки совместимости, попробуй использовать виртуальное окружение (venv).

Настройка базы данных для Airflow

По умолчанию Airflow использует SQLite, но для production нужна настоящая база данных. Рассмотрим настройку PostgreSQL.

Установка и настройка PostgreSQL

bash
# Установка PostgreSQL
sudo apt-get install -y postgresql postgresql-contrib

# Запуск службы
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Создание пользователя и базы данных для Airflow
sudo -u postgres psql -c "CREATE USER airflow WITH PASSWORD 'airflow_password';"
sudo -u postgres psql -c "CREATE DATABASE airflow_db OWNER airflow;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE airflow_db TO airflow;"

Установка драйвера PostgreSQL для Python

bash
pip install "apache-airflow[postgres]==${AIRFLOW_VERSION}" \
  --constraint "${CONSTRAINT_URL}"

Конфигурация Apache Airflow

После установки нужно настроить Airflow. Начнем с инициализации конфигурации.

Шаг 1: Инициализация домашней директории

bash
# Устанавливаем домашнюю директорию Airflow
export AIRFLOW_HOME=~/airflow

# Инициализируем базу данных
airflow db init

Шаг 2: Настройка подключения к базе данных

Отредактируем файл конфигурации airflow.cfg:

config
# В файле ~/airflow/airflow.cfg находим секцию [database]
# и меняем строку подключения:

[database]
sql_alchemy_conn = postgresql+psycopg2://airflow:airflow_password@localhost/airflow_db

# Также настраиваем executor (рекомендуется LocalExecutor для production)
executor = LocalExecutor

Шаг 3: Создание пользователя для веб-интерфейса

bash
# Создаем административного пользователя
airflow users create \
  --username admin \
  --firstname Admin \
  --lastname User \
  --role Admin \
  --email admin@example.com \
  --password admin123

Запуск Apache Airflow

Теперь, когда установка и настройка завершены, давай запустим все компоненты.

Шаг 1: Запуск веб-сервера

Веб-интерфейс Airflow работает на порту 8080 по умолчанию:

bash
# Запуск веб-сервера в фоновом режиме
airflow webserver --port 8080 -D

# Проверяем, что сервер запущен
curl http://localhost:8080 || echo "Веб-сервер не запущен"

Шаг 2: Запуск планировщика (scheduler)

Scheduler — это мозг Airflow, который управляет выполнением DAG:

bash
# Запуск scheduler в фоновом режиме
airflow scheduler -D

# Проверка статуса scheduler
airflow scheduler --status
Совет: Для production используй systemd или supervisor для управления процессами Airflow как службами.

Проверка установки Apache Airflow

Давай убедимся, что все работает правильно:

bash
# Проверка версии Airflow
airflow version

# Проверка подключения к базе данных
airflow db check

# Список доступных DAG
airflow dags list

Открой браузер и перейди по адресу http://localhost:8080. Ты должен увидеть веб-интерфейс Airflow. Войди под созданным пользователем (admin/admin123).

Установка Apache Airflow с помощью Docker

Для тех, кто предпочитает контейнеризацию, есть официальный Docker образ. Это самый быстрый способ начать работу.

Шаг 1: Создание docker-compose.yml

yaml
version: '3'
services:
  postgres:
    image: postgres:13
    environment:
      POSTGRES_USER: airflow
      POSTGRES_PASSWORD: airflow
      POSTGRES_DB: airflow
    volumes:
      - postgres-db-volume:/var/lib/postgresql/data

  airflow-webserver:
    image: apache/airflow:2.8.1
    restart: always
    depends_on:
      - postgres
    environment:
      AIRFLOW__CORE__EXECUTOR: LocalExecutor
      AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
    ports:
      - "8080:8080"
    command: webserver

  airflow-scheduler:
    image: apache/airflow:2.8.1
    restart: always
    depends_on:
      - postgres
    environment:
      AIRFLOW__CORE__EXECUTOR: LocalExecutor
      AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
    command: scheduler

volumes:
  postgres-db-volume:

Шаг 2: Запуск контейнеров

bash
# Инициализация базы данных
mkdir -p ./dags ./logs
chmod -R 777 ./dags ./logs

docker-compose up airflow-init
docker-compose up -d

Сравнение методов установки Airflow

Метод Сложность Гибкость Для production Рекомендация
pip + SQLite Низкая Ограниченная Нет Только для тестирования
pip + PostgreSQL Средняя Высокая Да Для production-серверов
Docker Низкая Средняя Да Для быстрого старта и разработки

Решение типичных проблем при установке

Проблема 1: Ошибки зависимостей Python

Решение: Используй виртуальное окружение и четко задавай версии:

bash
python3 -m venv airflow_venv
source airflow_venv/bin/activate
# Повтори установку внутри venv

Проблема 2: Airflow не видит DAG файлы

Решение: Проверь настройки в airflow.cfg:

config
[core]
dags_folder = /путь/к/твоим/dags
load_examples = False  # Отключи примеры если мешают

Проблема 3: Ошибки подключения к базе данных

Решение: Проверь строку подключения и права доступа:

bash
# Проверь, что PostgreSQL слушает правильный порт
sudo netstat -tlnp | grep postgres

# Пересоздай базу данных если нужно
airflow db reset  # Внимание: удалит все данные!

Следующие шаги после установки

Поздравляю! Ты успешно выполнил установку Apache Airflow. Теперь можно:

  • Создать свой первый DAG (начни с простого hello_world.py)
  • Настроить подключения (Connections) к внешним системам
  • Изучить операторы (Operators) для различных задач
  • Настроить мониторинг и алертинг
  • Оптимизировать производительность для production
Профессиональный совет: Для production-окружения обязательно настрой бэкапы базы данных Airflow, мониторинг метрик и систему алертинга.

Часто задаваемые вопросы (FAQ)

Какую версию Python использовать для Airflow?

Apache Airflow 2.x поддерживает Python 3.8, 3.9, 3.10 и 3.11. Рекомендуется использовать Python 3.9 или 3.10 как наиболее стабильные версии. Проверь совместимость на официальном сайте перед установкой.

Можно ли установить Airflow на Windows?

Официально Airflow не поддерживает Windows. Однако ты можешь использовать WSL2 (Windows Subsystem for Linux) или Docker. WSL2 — лучший вариант для разработки на Windows, так как предоставляет почти нативную Linux-среду.

Как обновить Airflow до новой версии?

Обновление требует осторожности. Сначала сделай бэкап базы данных. Затем обнови пакет через pip с указанием новой версии. После обновления выполни airflow db upgrade для применения миграций базы данных. Всегда проверяй changelog на breaking changes.

Какой executor выбрать для production?

Для production рекомендуется:
1. CeleryExecutor — для распределенного выполнения задач на нескольких worker-нодах
2. KubernetesExecutor — если у тебя есть Kubernetes-кластер
3. LocalExecutor — для single-node установок с параллельным выполнением

Как настроить безопасность в Airflow?

Обязательные шаги безопасности:
1. Используй HTTPS для веб-интерфейса
2. Настрой аутентификацию (OAuth, LDAP или собственные провайдеры) 4. Регулярно обновляй Airflow и зависимости
5. Настрой firewall правила для портов Airflow

Итоги установки Apache Airflow

Ты успешно прошел весь путь установки Apache Airflow — от подготовки окружения до запуска production-готовой системы. Помни главные моменты:

  • Всегда используй виртуальное окружение для изоляции зависимостей
  • Выбирай PostgreSQL или MySQL для production баз данных
  • Настрой правильный executor в зависимости от твоих потребностей
  • Не забывай про безопасность и мониторинг
  • Docker-установка — отличный выбор для быстрого старта и разработки

Теперь у тебя есть мощный инструмент для оркестрации рабочих процессов. Начни с создания простых DAG, постепенно усложняя их по мере освоения возможностей Airflow. Удачи в автоматизации!

Поделиться:
Сохранить гайд? В закладки браузера