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

Apache Airflow - свободное программное обеспечение, родившееся внутри компании Airbnb для управления многочисленными и разветвленными рабочими процессами. Airflow написан на Python и процессы, которые вы будете использовать в своей работе также будете создавать на этом языке.
Статья разделена на 3 части:
- Часть 1/3: Apache Airflow. Установка и первые шаги.
- Часть 2/3: Apache Airflow. Установка с использованием Docker
- Часть 3/3: Apache Airflow. Разработка простого DAG
Полезные ссылки
Установка на 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
На рисунке для краткости показаны только те строки, в которые необходимо внести изменения на начальном этапе:
Комментарии к конфигурации:
- Путь к папке где будут расположен код пайплайна DAG
- Часовой пояс. Список доступных можно посмотреть, например, с помощью команды:
timedatectl list-timezones | grep Europe
- Способ организовать выполнение задач. В данном случае - локальный. Позволяет организовать удобный способ организации задач, но в пределах данного компьютера. Позже об этом еще поговорим.
- Подключение к базе данных Postgres. Обратите внимание - здесь вы должны указать логин и пароль аккаунта который вы создали на этапе создания базы данных.
- Не загружаем примеры
- С остальными настройками я думаю все более-менее понятно. Самое главное правильно указать 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