Опыт установки Apache Airflow на Windows 10

Преамбула: волею судьбы из мира академической науки (медицины) я попала в мир информационных технологий, где мне приходится использовать свои знания о методологии построения эксперимента и стратегиях анализа экспериментальных данных, однако, применять новый для меня стек технологий. В процессе освоения этих технологий я сталкиваюсь с рядом трудностей, которые пока, к счастью, удается преодолевать. Возможно, этот пост будет полезен тем, кто также только начинает работу с проектами Apache.

Итак, к сути. Вдохновившись статьей Юрия Емельянова о возможностях Apache Airflow в области автоматизации аналитических процедур, мне захотелось начать использовать предлагаемый набор библиотек в своей работе. Тем, кто еще совсем не знаком с Apache Airflow, может быть интересна небольшая обзорная статья на сайте Национальной библиотеки им. Н. Э. Баумана.

Поскольку обычные инструкции для запуска Airflow, судя по всему, не применяются в среде Windows, а использовать для решения данной задачи докер в моем случае было бы избыточно, я начала поиск других решений. К счастью для меня, я оказалась не первой на этом пути, поэтому мне удалось найти замечательную видео-инструкцию по установке Apache Airflow в Windows 10 без использования докера. Но, как это часто и бывает, при выполнении рекомендуемых шагов, возникают трудности, и, полагаю, не только у меня. Поэтому я хотела бы рассказать о своем опыте установки Apache Airflow, возможно кому-то это сэкономит немного времени.

Пройдемся по шагам инструкции (спойлер — 5-го шага все шло прекрасно):

1. Установка подсистемы Windows для Linux для последующей установки дистрибутивов Linux

Это меньшая из проблем, как говорится:

Панель управления → Программы → Программы и компоненты → Включение и отключение компонентов Windows → Подсистема Windows для Linux

2. Установка дистрибутива Linux по выбору

Я воспользовалась приложением Ubuntu.

3. Установка и апдейт pip

sudo apt-get install software-properties-common
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install python-pip

4. Установка Apache Airflow

export SLUGIFY_USES_TEXT_UNIDECODE=yes
pip install apache-airflow

5. Инициализация базы данных

И вот именно здесь начались мои маленькие трудности. Инструкция предписывает ввести команду airflow initdb и перейти к следующему шагу. Однако я неизменно получала ответ airflow: command not found. Логично предположить, что возникли трудности на этапе установки Apache Airflow и просто нет нужных файлов. Удостоверившись, что все там где и должно быть, я решила попробовать указать полный путь до файла airflow (выглядеть должно так: Полный/путь/до/файла/airflow initdb). Но чуда не произошло и ответ был тем же airflow: command not found. Я попробовала использовать относительный путь к файлу (./.local/bin/airflow initdb), что привело к появлению новой ошибки ModuleNotFoundError: No module named json', которую можно преодолеть, обновив библиотеку werkzeug (в моем случае до версии 0.15.4):

pip install werkzeug==0.15.4

Подробнее о werkzeug можно почитать здесь.

После этой нехитрой манипуляции команда ./.local/bin/airflow initdb была выполнена успешно.

6. Запуск сервера Airflow

На этом сложности с обращением к airflow еще не завершились. Запуск команды ./.local/bin/airflow webserver -p 8080 привел к ошибке No such file or directory. Вероятно, опытный пользователь Ubuntu сразу бы попробовал преодолеть такие трудности с обращением к файлу, применив команду export PATH=$PATH:~/.local/bin/ (то есть, добавив к существующему пути поиска исполняемых файлов, определяемому переменной PATH каталог /.local/bin/), но этот пост предназначен для тех, кто преимущественно работает с Windows и, возможно, не считает такое решение очевидным.

После описанной выше манипуляции команда ./.local/bin/airflow webserver -p 8080 была успешно выполнена.

7. URL: localhost:8080/

Если все прошло удачно на предыдущих этапах, то вы готовы покорять аналитические вершины.

Надеюсь, описанный выше опыт установки Apache Airflow на Windows 10 будет полезен начинающим пользователям и ускорит их вхождение во вселенную современных инструментов аналитики.

В следующий раз хотелось бы продолжить тему и рассказать об опыте использования Apache Airflow в сфере анализа поведения пользователей мобильных приложений.

Комментарии 2

    0
    Чем больше читаю про AirFlow, тем больше радуюсь, что у нас Oozie. При этом те примеры преимуществ, которые я читаю, для меня не преимущества вовсе:
    — pytnon vs xml+java? Извините, но тот кто так пишет, явно кое-чего не понимает. Наши сложные случаи выглядят обычно так — приходится генерировать налету сложные графы, а генерировать xml на самом деле проще, чем генерировать питоновский код. А писать сложные графы руками — да ну их
    — Oozie xml вполне заменяется на groovy builder. Даже если готовый чей-то компонент не годится, такое сделать самому раз плюнуть
    — REST у Oozie (на мой вкус) сильно богаче (хотя мне бы хотелось еще возможностей)
    — недостатки типа «нужно положить код в HDFS, чтобы узи с ним работал» выглядят вообще смешно — если у вас распределенная система, то именно HDFS самое логичное место хранения

    И да, при чем тут аналитика? Это оркестратор пакетных процессов — насколько я понимаю, он вообще ничего не анализирует (так же, как и Oozie).
      0
      Спустя год от написания всё работает нормально с первого раза без танцев с бубном (по Ubuntu ставится 20.04), но статья всё равно мне помогла найти оптимальный способ запуска Airflow на виндовсе, спасибо :)

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

      Самое читаемое