Как установить air flow на 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 в сфере анализа поведения пользователей мобильных приложений.

airflow_base_RU

Установка Apache Airflow на Windows 10 и простые первые даги DAG’s

Для установки airflow на windows 10 необходимо сначала установить подсистему Windows для Linux (Windows subsystem for Linux — WSL), т.к. airflow не поддерживает windows((

Шаг 1.

Изначально компонент WSL отключен. Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов windows , активировать галочку -> Подсистема Windows для Linux (Windows Subsystem for Linux) , нажать кнопку ОК, и перезагрузить компьютер.

Шаг 2.

Качаем и устанавливаем любой понравившийся дистрибьютив.

Все готово к началу установки.

Шаг 3.

Сама установка описана в официальной документации и разбита на следующие действия:

  • сначала в командной строке вводим wsl для доступа к установленной подсистеме;
  • затем непостредственно установка — pip install apache-airflow;
  • если «по-хорошему» не прошло, то выполняем следующий набор команд для выбора и установки определенной версии:
    1. export AIRFLOW_HOME=~/airflow
    2. source ~/.bashrc
    3. AIRFLOW_VERSION=2.2.3
    4. PYTHON_VERSION="$(python3 --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
    5. CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
    6. pip3 install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
    7. export PATH=$PATH:~/.local/bin
    8. source ~/.bashrc
  • инициализация базы данных, по умолчанию sqlite — airflow db init;
  • создание пользователя — airflow users create --username admin --firstname Peter --lastname Parker --role Admin --email spiderman@superhero.org
  • запуск локального сервера — airflow webserver --port 8080
  • запуск шедулера в новом окне — airflow scheduler

Если все сделано верно, то при посещении localhost:8080 и после ввода данных пользователя вам будут доступны для ознакомления с функциональностью стандартные даги, их уже можно покрутить/позапускать и посмотреть на результаты.

П.С.

По умолчанию создается домашняя папка AIRFLOW_HOME=~/airflow, ее можно сменить export AIRFLOW_HOME='ваш путь'. В папку airflow/dags необходимо будет поместить все ваши новые даги для последующей с ними работы.
Для того чтобы получить доступ к папкам подсистемы проделаем следующее cmd -> wsl -> cd ~/ -> explorer.exe .

You can do it using Cygwin. Cygwin is a command line shell that runs on Windows and emulates Linux. So you’ll be able to run the commands,

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install apache-airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080

Note 1: If you’re running Cygwin on your company supplied computer you may need to run the Cygwin application as an administrator. You can do so with the following tutorial from Microsoft.

Note 2: If like me you are behind a proxy (at your work or whatever proxy you’re behind) you’ll need to set two enviornment variables for pip to work on the command line; in this case Cygwin. You can follow this StackOverflow answer for more details. So I set the following two environment variables on my Windows machine,

// Note this first entry has an S in HTTPS and the other entry is just regular HTTP. Don't forget that distinction in the key name and in the url of the value.
HTTPS_PROXY=https://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

HTTP_PROXY=http://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

No Longer Works: Apparently all of the above work was in vain because Airflow won’t work on Windows. Please see this StackOverflow post. The above steps will allow you to use Pip though.

Alternatively, and I know this may or may not be seen as being run on Windows, you could install a virtual machine client such as Oracle’s Virtualbox or VMware’s Workstation and then setup whatever Linux version you want such as Ubuntu Desktop and then you can run Linux normally. If you need more detailed steps to do this you can follow this AskUbuntu from the Stack Exchange community answer here.

Alternatively (2), you could create an AWS account, then setup a simple ec2-instance running Linux, then ssh into that ec2-instance, and then run all your commands to your hearts content. AWS offers a free tier so you should be able to do it for free. Plus, AWS is very well documented so it shouldn’t be too hard to get a simple Linux server up and running; I estimate a beginner could be done with it in about an hour.

Raymond
Raymond

Raymond

articleArticles 549

imageDiagrams 49

codeCode 3

chat_bubble_outlineThreads 8

commentComments 265

loyaltyKontext Points 6055

account_circle Profile


visibility 4,152

event 2022-01-08
access_time 11 months ago
language English

more_vert

Airflow is a Python based workflow tool published by Apache to allow you to create, schedule and monitor workflows programmatically. It’s a common tool used in modern data engineering practice. This article show you how to install Airflow on your Windows 10 or 11 systems via WSL (Windows Subsystem for Linux).

Prerequisites

  • WSL — Follow this article to enable it if you have not done that already. 
  • Python — from Airflow 2.0, Python 3.6+ is required. Follow Install Python 3.9.1 on WSL to install Python 3.9.1 on WSL.

Install Airflow on WSL

Now we can install Airflow in WSL.

Create AIRFLOW_HOME variable

Add the following line to ~/.bashrc file to setup the variable:

export AIRFLOW_HOME=~/airflow

And then source it:

source ~/.bashrc

Install Airflow package

Run the following commands to install it:

AIRFLOW_VERSION=2.2.3
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
pip3 install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

If you notice warning message like the following:

WARNING: The script airflow is installed in ‘/home/***/.local/bin’ which is not on PATH.

Add the path to PATH environment variable so that you can use commands like airflow. You can do this by editing ~/.brashrc.

export PATH=$PATH:~/.local/bin

Remember to source the new settings:

source ~/.bashrc

Initialize database

Run the following command to initialize the database:

airflow db init

2022010842528-image.png

This command will create the AIRFLOW_HOME folder with configuration file and the default SQLite database for storing data. Check out file $AIRFLOW_HOME/airflow.cfg for all the configuration items.

Create an admin user

Now let’s create an admin account using the following command:

airflow users create 
    --username admin
    --firstname Raymond
    --lastname Tang
    --role Admin
    --email ***@kontext.tech

You need to input a password for the user:

2022010842924-image.png

Start webserver service

Now you can run the following command to start the webserver service:

airflow webserver --port 8080

Remember to change the port number to a different one if it is already used by other services in your system.

Open the website in browser: http://localhost:8080/

The login screen looks like the following screenshot:

2022010843246-image.png

Input these details to sign in:

  • Username: admin
  • Password: the password you input previously when setting up.

After login, the home page will show all the default example DAGs:

2022010843501-image.png

Start scheduler service

If you want to enable scheduling service, run the following command in a different Bash/WSL window:

airflow scheduler

The command will print out these texts:

2022010843729-image.png

You can stop the service by press Ctrl + C.

Run example workflow

We can run the built-in example workflow using airflow tasks run command:

airflow tasks run
usage: airflow tasks run [-h] [--cfg-path CFG_PATH] [--error-file ERROR_FILE] [-f] [-A] [-i] [-I] [-N] [-l] [-m]
[-p PICKLE] [--pool POOL] [--ship-dag] [-S SUBDIR]
dag_id task_id execution_date_or_run_id

Run this command:

airflow tasks run example_bash_operator runme_0 2022-01-08

The command will trigger task runme_0 in DAG example_bash_operator:

2022010844218-image.png

Rou can also backfill jobs for historical dates:

airflow dags backfill --start-date "2022-01-01" --end-date 2022-01-05 example_bash_operator

References

Running Airflow locally

Like this post? Please share to your friends:
  • Как установить atmel studio 7 на windows 7
  • Как установить aiogram в python windows
  • Как установить atk0100 driver windows 7 asus
  • Как установить aimp на windows 10
  • Как установить asus smart gesture для windows 10