Apache Airflow 1/3. Установка и первые шаги

Apache Airflow 1/3. Установка и первые шаги
Содержимое страницы

Apache Airflow - свободное программное обеспечение, родившееся внутри компании Airbnb для управления многочисленными и разветвленными рабочими процессами. Airflow написан на Python и процессы, которые вы будете использовать в своей работе также будете создавать на этом языке.

Статья разделена на 3 части:

Полезные ссылки

Установка на Linux Ubuntu 20.04

Почему именно эта версия? Вы можете использовать самую новую версию дистрибутива. Моя логика в этом вопросе простая - я беру самую последнюю серверную версию Ubuntu LTS (Long Term Support). Плюсы этого подхода - до 5 лет поддержки и обновлений пакетов для этого дистрибутива. Это позволяет добиться некоторой стандартизации используемых на своих серверах дистрибутивов.

Для тех кому хочется подробностей про Ubunu LTS - Ubuntu LTS Blog

1. Установка пакетов

Прежде чем начинать установку, необходимо ознакомиться с требованиями к сопутствующему программному обеспечению. В частности в текущий момент не гарантируется работа на ветке Python 3.9 и старше, обратите внимание на этот факт.

Перед началом установки нужно указать где будут размещены файлы Airflow:

export AIRFLOW_HOME=~/airflow

Установка пакета Airflow:

pip3 install apache-airflow

Инсталляцию будем делать для реального использования, поэтому сразу настраиваем базу данных PostgreSQL:

# Коннектор Python для PostgreSQL
sudo apt-get install libpq-dev psycopg2
# Установка PostgreSQL
sudo apt install postgresql postgresql-contrib

2. Конфигурационный файл

К настоящему моменту у вас в папке ~/airflow должен быть установлен Airflow и мы должны сделать первоначальные настройки в конфигурационном файле:

# 1. Создадим подкаталог для DAG
mkdir ~/airflow/dags

# 2. Отредактируем airflow.cfg:
vim ~/airflow/airflow.cfg

На рисунке для краткости показаны только те строки, в которые необходимо внести изменения на начальном этапе: airflow.cfg

Комментарии к конфигурации:
  1. Путь к папке где будут расположен код пайплайна DAG
  2. Часовой пояс. Список доступных можно посмотреть, например, с помощью команды:
    timedatectl list-timezones | grep Europe
    
  3. Способ организовать выполнение задач. В данном случае - локальный. Позволяет организовать удобный способ организации задач, но в пределах данного компьютера. Позже об этом еще поговорим.
  4. Подключение к базе данных Postgres. Обратите внимание - здесь вы должны указать логин и пароль аккаунта который вы создали на этапе создания базы данных.
  5. Не загружаем примеры
  6. С остальными настройками я думаю все более-менее понятно. Самое главное правильно указать web_server_host и web_server_port чтобы веб-сервер Airflow смог корректно загрузиться.

3. Настройка базы данных

В ходе установки сервера PostgreSQL будет создана учетная запись postgres, именно ее необходимо использовать для управления сервером:

# Будет запущена административная консоль:
sudo -u postgres psql

# Создадим учетную запись и роль в БД:
postgres=create database airflow_metadata;
postgres=CREATE USER airflow WITH password 'tmppass';
postgres=grant all privileges on database airflow_metadata to airflow;

Проинициализируем базу данных:

airflow db init

4. Добавляем пользователя

airflow users create -e panaev@foo.bar -f Ivan -l Panaev -p mysecuritypass -r Admin -u panaev

В дальнейшем создать пользователей вы сможете через веб-интерфейс, но если потребуется то параметры командной строки для создания пользователей можно увидеть с помощью команды:

airflow users create --help

5. Запуск Airflow

Чтобы убедиться что все в порядке выполняем команду и переходим в браузер:

airflow webserver

airflow webserver