Airflow apache install windows

Installation¶

Getting Airflow¶

The easiest way to install the latest stable version of Airflow is with pip :

You can also install Airflow with support for extra features like gcp or postgres :

Extra Packages¶

The apache-airflow PyPI basic package only installs what’s needed to get started. Subpackages can be installed depending on what will be useful in your environment. For instance, if you don’t need connectivity with Postgres, you won’t have to go through the trouble of installing the postgres-devel yum package, or whatever equivalent applies on the distribution you are using.

Behind the scenes, Airflow does conditional imports of operators that require these extra dependencies.

Here’s the list of the subpackages and what they enable:

pip install ‘apache-airflow[all]’

All Airflow features known to man

pip install ‘apache-airflow[all_dbs]’

All databases integrations

pip install ‘apache-airflow[async]’

Async worker classes for Gunicorn

pip install ‘apache-airflow[aws]’

Amazon Web Services

pip install ‘apache-airflow[azure]’

pip install ‘apache-airflow[celery]’

pip install ‘apache-airflow[cloudant]’

pip install ‘apache-airflow[crypto]’

Encrypt connection passwords in metadata db

pip install ‘apache-airflow[devel]’

Minimum dev tools requirements

pip install ‘apache-airflow[devel_hadoop]’

Airflow + dependencies on the Hadoop stack

pip install ‘apache-airflow[druid]’

Druid related operators & hooks

pip install ‘apache-airflow[gcp]’

Google Cloud Platform

pip install ‘apache-airflow[github_enterprise]’

GitHub Enterprise auth backend

pip install ‘apache-airflow[google_auth]’

Google auth backend

pip install ‘apache-airflow[hashicorp]’

Hashicorp Services (Vault)

pip install ‘apache-airflow[hdfs]’

HDFS hooks and operators

pip install ‘apache-airflow[hive]’

All Hive related operators

pip install ‘apache-airflow[jdbc]’

JDBC hooks and operators

pip install ‘apache-airflow[kerberos]’

Kerberos integration for Kerberized Hadoop

pip install ‘apache-airflow[kubernetes]’

Kubernetes Executor and operator

pip install ‘apache-airflow[ldap]’

LDAP authentication for users

pip install ‘apache-airflow[mssql]’

Microsoft SQL Server operators and hook, support as an Airflow backend

pip install ‘apache-airflow[mysql]’

MySQL operators and hook, support as an Airflow backend. The version of MySQL server has to be 5.6.4+. The exact version upper bound depends on version of mysqlclient package. For example, mysqlclient 1.3.12 can only be used with MySQL server 5.6.4 through 5.7.

pip install ‘apache-airflow[oracle]’

Oracle hooks and operators

pip install ‘apache-airflow[password]’

Password authentication for users

pip install ‘apache-airflow[postgres]’

PostgreSQL operators and hook, support as an Airflow backend

pip install ‘apache-airflow[presto]’

All Presto related operators & hooks

pip install ‘apache-airflow[qds]’

Enable QDS (Qubole Data Service) support

pip install ‘apache-airflow[rabbitmq]’

RabbitMQ support as a Celery backend

pip install ‘apache-airflow[redis]’

Redis hooks and sensors

pip install apache-airflow[samba]’

pip install ‘apache-airflow[slack’]

pip install ‘apache-airflow[ssh]’

SSH hooks and Operator

pip install ‘apache-airflow[vertica]’

Vertica hook support as an Airflow backend

Initiating Airflow Database¶

Airflow requires a database to be initiated before you can run tasks. If you’re just experimenting and learning Airflow, you can stick with the default SQLite option. If you don’t want to use SQLite, then take a look at Initializing a Database Backend to setup a different database.

After configuration, you’ll need to initialize the database before you can run tasks:

Источник

Опыт установки 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

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

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

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

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

/.local/bin/ (то есть, добавив к существующему пути поиска исполняемых файлов, определяемому переменной PATH каталог /.local/bin/), но этот пост предназначен для тех, кто преимущественно работает с Windows и, возможно, не считает такое решение очевидным.

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

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

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

Источник

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

Категории

Свежие записи

Наши услуги

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

Читайте также:  Driver samsung 4300 windows 10 driver

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

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

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

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

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

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

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

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

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

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

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

/.local/bin/ (то есть, добавив к существующему пути поиска исполняемых файлов, определяемому переменной PATH каталог /.local/bin/), но этот пост предназначен для тех, кто преимущественно работает с Windows и, возможно, не считает такое решение очевидным.

7. URL: localhost :8080/

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

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

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

Источник

Installing Apache Airflow on Windows 10

Apr 22, 2020 · 9 min read

This guide is designed to walk you through installing Apache Airflow on a Windows 10 machine using Ubuntu. Airflow is a platform created by the community to programmatically author, schedule and monitor workflows.

Step 1: Installing Linux Subsystem (Ubuntu)

You can find a free copy of Ubuntu in the Microsoft Store here.

Download and install Ubuntu. Before opening the program there are a couple housekeeping items that we need to take care of first.

a. Enable Developer Mode

If you haven’t already, you wi l l need to turn on Developer Mode within Windows 10. Type “Developer” into the Windows search bar and select the option that says “Developer Settings”.

In the page that appears, select the bubble next to the “Developer Mode” option. That’s it!

b. Enable Linux Subsystem

In the Windows search bar type “Windows Feature” and select the option that says “Turn a Windows Feature on or off.”

Check the box next to Windows Subsystem for Linux and click OK.

Note: This will require a restart in order to take effect.

c. Download C++ Build Tools (14.0)

In order to use Ubuntu you will need to install the Visual C++ Build Tools that can be found here.

After these steps, our house cleaning is complete! Once you fire up Ubuntu, it will begin its initial installation process which usually only takes a minute or two.

Ubuntu will then prompt you for a username and password. Set these to your desired credentials and press enter. When you arrive at a prompt like the one below, you are ready to move on to step two.

Step 2: Installing PIP

To install Airflow we will need to make sure that pip is installed. Run the following command to install the latest version of pip.

Verify the installation by running the command below:

Congratulations, pip is now installed!

Step 3: Installing Dependencies

The first step for installing Airflow’s dependencies requires us to run the following commands. These ensure that all the required packages are installed and up to date.

Once completed, we need to install PostgreSQL for Airflow. PostgreSQL is a more robust back end database that can be used to create a powerful data pipeline through the UI.

Once this step has completed, run the following command to start the Postgresql service.

Next, check the status of the cluster and make sure that it is running. Use the following command. You should get an output that looks something like the screenshot below.

We will need to extract a few things from this response for the next piece of code. You want to get the version and the cluster then insert those values in the following piece of code:

It should confirm that the cluster is running and will look something like this:

Once completed, we can now create a database for Airflow to use. Execute the following command to access psql.

Next, we need to create a profile and assign the correct privileges.

Now we need to setup a password for the ubuntu user:

Enter the password, and then again to confirm. Now you can type \q to quit.

Next, we can connect to the Airflow database and verify the connection information. After running the following script you should receive a response that says “You are now connected..”

Next, hit Ctrl + Z to stop the session and enter the following command to navigate to the config file.

You should then see a list of files in this directory like the screenshot below:

Читайте также:  Lenovo s110 windows 10 video driver

From here we need to modify some values in this config file to finish setting up Airflow. Use the following command to enter the editor:

Modify the line underneath #IPv4 local connections to 0.0.0.0/0

Type Ctrl + S to save and Ctrl + X to exit.

Then, we need to use the same command to open another config file.

Under the “CONNECTIONS AND AUTHENTICATION” section, modify the following

Type Ctrl + S to save and Ctrl + X to exit.

Finally, restart PostgreSQL to save and load the changes.

*Be sure to allow access in Windows Firewall settings when prompted (if applicable)

Now enter the following command to go back to the root directory

Step 4: Installing Apache Airflow

To install Airflow, run the following command in the terminal:

After that is done installing we can take care of a few things to make sure everything goes smoothly.

We need to add the path to PATH within the terminal window. This allows you to call airflow directly using the airflow command.

Change the parts to your username and then copy the entire line and paste it on a new line within the variables list. Click OK to save the changes.

That’s it! You did it! Apache Airflow is now installed in your environment! You must close and then open a new instance of Ubuntu in order to call Airflow commands.

Note: If you receive an error during install regarding the version of marshmallow you have installed. Run the following commands to install a compatible version.

Another Note: The most recent release of WTForms (2.3.0 and higher) will throw an ImportError when attempting to call airflow in the terminal. If you run into this issue you need to uninstall WTForms and reinstall version 2.2.1. The commands below will accomplish this for you.

These last two issues will likely be corrected in future releases, but as of today (4/22/2020) they need to be completed in order to move forward.

Step 5: Apache Airflow Setup

I included the following steps to help first time users of Airflow setup a test environment in which they can explore world of Apache Airflow.

1. The following command will initialize the database.

Once completed, the necessary config files will be created in the airflow directory. We need to make a couple changes to make sure Airflow is setup correctly. Use the following commands to navigate to and open the config file.

Make the following changes to the config file:

**Insert the password you created in the previous step in the

section of the sql_alchemy_conn value

Use Ctrl + S to save and Ctrl + X to exit.

Note: The dags and log folder paths above map Airflow to your Windows C: drive. You will need to create two folders. One on your C: drive at C:\dags and a folder inside that folder at C:\dags\logs. You can change the location of these and specify the folders of your choosing. I use the above directory as it is easy to locate and access. You will also avoid any potential permissions issues in this directory.

Once this has been completed run the following:

If you receive an error relating to the psycopg2 package, run the following commands to correct this issue:

Install Rabbitmq

We need to update the config file. Navigate to the rabbitmq config file and change the following:

Now start the RabbitMQ service.

Install Celery

There are newer versions of Celery that are not compatible with airflow. The following command will install a lower version that ensures compatability.

Run Airflow initdb one last time:

Woohoo! You did it! We can now start up the airflow webserver and scheduler!

Run the first command and let it run. Open a new terminal window and run the second prompt.

Once both of these are running successfully, open a tab in your desired browser (Chrome, Firefox, etc.) and enter the following in the url bar:

When you hit enter, the following page should load:

From here you can now import your dags to the /dags folder and they will appear in Airflow once the db refreshes. For additional help and information on working with Apache Airflow, I recommend looking through the documentation on the Apache Airflow website here.

You can also check out any of the sources I used to compile this tutorial at the links below. Happy coding!

Источник

Введение в Apache Airflow

Также по теме Airflow:

Apache Airflow — это продвинутый workflow менеджер и незаменимый инструмент в арсенале современного дата инженера. Если смотреть открытые вакансии на позицию data engineer, то нередко встретишь опыт работы с Airflow как одно из требований к позиции.

Airflow был разработан в 2014 году в компании Airbnb, автор Maxime Beauchemin. Позже инструмент был передан под опеку в организацию Apache, а в январе 2019 получил статус Top-Level проекта. В этой статье я расскажу про установку, настройку и запуск первого дата пайплайна средствами Apache Airflow. К слову, в 2017 году я уже писал про не менее классный и простой инструмент Luigi от компании Spotify. По своей сути эти два инструмента похожи — оба предназначены для запуска цепочек задач (дата пайплайнов), но есть у них и ряд различий о которых я говорил во время своего выступления на PyCON Russia 2019:

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

DAG (Directed Acyclic Graph)

DAG — это ориентированный ациклический граф, т.е. граф у которого отсутствуют циклы, но могут быть параллельные пути, выходящие из одного и того же узла. Простыми словами DAG это сущность, объединяющая ваши задачи в единый data pipeline (или цепочку задач), где явно видны зависимости между узлами.

На картинке можно видеть классический DAG, где Task E является конечным в цепочке и зависит от всех задача слева от него.

Operator

Если вы знакомы с инструментом Luigi, то Operator в Airflow это аналог Task в Luigi. Оператор это звено в цепочке задач. Используя оператор разработчик описывает какую задачу необходимо выполнить. В Airflow есть ряд готовых операторов, например:

Читайте также:  Nvidia share не отвечает windows 10

Полный список стандартных операторов можно найти в документации Apache Airflow.

DAG является объединяющей сущностью для набора операторов, т.е. если вернуться к картинке выше, то Task A, Task B и т.д. это отдельные операторы.

Важно! Операторы не могут принимать возвращаемые значения от выполнения предыдущих операторов в цепочке (как, например, цепочка из вызовов функций), т.к. могут исполняться в разном адресном пространстве и даже на разных физических машинах.

Sensor

Сенсор это разновидность Operator, его удобно использовать при реализации событийно ориентированных пайплайнов. Из стандартного набора есть, например:

Хуки это внешние интерфейсы для работы с различными сервисами: базы данных, внешние API ресурсы, распределенные хранилища типа S3, redis, memcached и т.д. Хуки являются строительными блоками операторов и берут на себя всю логику по взаимодействию с хранилищем конфигов и доступов (о нём ниже). Используя хуки можно забыть про головную боль с хранением секретной информации в коде (пароли к доступам, например).

Установка

Apache Airflow состоит из нескольких частей:

В качестве базы данных рекомендуется использовать PostgreSQL или MySQL. В этом посте речь пойдёт про установку и настройку Apache Airflow руками, я не буду использовать готовые образы Docker, чтобы наглядно показать как всё запускается изнутри.

Погнали! Создаём новое виртуальное окружение Python, и ставим в него Apache Airflow:

У Airflow много зависимостей в отличие от Luigi, поэтому на экране будет много текста. Вот, например, результат вывода pip freeze :

Далее выполняем инициализацию для базы данных.

Эта команда накатит все миграции, по умолчанию в качестве базы данных Airflow использует SQLite. Для демонстрационных возможностей это нормально, но в реальном бою лучше всё же переключиться на MySQL или PostgreSQL. Давайте делать всё по-взрослому. Я буду использовать Postgres, поэтому если он у вас до сих пор не стоит, то самое время установить PostgreSQL.

Создаю базу данных и пользователя к ней для Airflow:

В качестве python-драйвера для PostgreSQL я использую psycopg2, поэтому её необходимо поставить в окружение:

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

Airflow Executors

Хочу немножко отвлечься от запуска Airflow и рассказать про очень важную концепцию — Executors. Как понятно из названия, Executors отвечают за исполнение задач. В Airflow есть несколько видов исполнителей:

SequentialExecutor

Этот исполнитель установлен в качестве значения по умолчанию в airflow.cfg у параметра executor и представляет из себя простой вид воркера, который не умеет запускать параллельные задачи. Как можно догадаться, в конкретный момент времени выполняться может только одна единственная задача. Этот вид исполнителя используют в ознакомительных целях, для продуктивной среды он категорически не подходит.

LocalExecutor

Этот вид исполнителя даёт максимальные ощущения продуктивной среды в тестовом окружении (или окружении разработки). Он умеет выполнять задачи параллельно (например, исполнять несколько DAGов одновременно) путём порождения дочерних процессов, но всё же не совсем предназначен для продакшена ввиду ряда проблем:

При небольшом количестве задач всё же можно использовать LocalExecutor, т.к. это проще, быстрее и не требует настройки дополнительных сервисов.

CeleryExecutor

Наиболее популярный вид исполнения задач. Под капотом использует всю магию таск-менеджера Celery, а соответственно тянет за собой все зависимости этого инструмента. Чтобы использовать CeleryExecutor необходимо дополнительно настроить брокер сообщений. Чаще всего используют либо Redis либо RabbitMQ. Преимущества этого вида в том, что его легко масштабировать — поднял новую машину с воркером, и он готов выполнять требуемую работу, а также в отказоустойчивости. В случае падения одного из воркеров его работа будет передана любому из живых.

DaskExecutor

Очень похож на CeleryExecutor, но только вместо Celery использует инструмент Dask, в частности dask-distributed.

KubernetesExecutor

Относительно новый вид исполнения задач на кластере Kubernetes. Задачи исполняются как новые pod инстансы. В связи с развитием контейнеров и их повсеместным использованием, данный вид исполнения может быть интересен широкому кругу людей. Но у него есть минус — если у вас нет Kubernetes кластера, то настроить его будет непростым упражнением.

Так к чему я начал разговор про Executors. В стандартной конфигурации Airflow предлагает нам использовать SequentialExecutor, но мы ведь стараемся подражать продуктивной среде, поэтому будем использовать LocalExecutor. В airflow.cfg поменяйте значение параметра executor на LocalExecutor.

Запускаем веб-приложение на 8080 порту:

Если всё настроено правильно, то переход по адресу localhost:8080 должен показать страницу как на скриншоте:

Поздравляю! Мы настроили и запустили Apache Airflow. На странице можно заметить сообщение:

The scheduler does not appear to be running. The DAGs list may not update, and new tasks will not be scheduled.

Сообщение указывает на то, что не запущен планировщик Airflow (scheduler). Он отвечает за DAG discovery (обнаружение новых DAG), а также за планирование их запуска. Запустить планировщик можно командой:

Для того, чтобы не переключаться между разными окнами терминалов, я люблю использовать менеджер терминалов tmux.

Итак, база настроена, веб-приложение и планировщик запущены. Нам остаётся только написать наш первый data pipeline и почувствовать себя в шкуре крутого дата инженера.

Строим data pipeline на Apache Airflow

Какие задачи будет выполнять пайплайн? Я решил для демонстрации взять пример с датасетом Titanic о котором писал в статье про pandas. Суть в том, что сначала необходимо будет скачать датасет, следующим шагом будет этап создания сводной таблицы: сгруппируем пассажиров по полу и пассажирскому классу, чтобы узнать количество людей в каждом классе. Результатом будет новый csv-файл со сводной таблицей.

Вот так выглядит DAG:

А вот код всего DAGа, включая 2 оператора:

Это означает, что выполнение оператора pivot_titanic_dataset зависит от выполнения оператора create_titanic_dataset.

На уровне объекта DAG задаются настройки, например:

Параметров в разы больше. Более подробно как всегда можно прочитать в доках.

Если всё сделано верно, то в списке появится наш DAG:

Его можно активировать, переключив с Off на On и попробовать запустить (Trigger Dag).

Заключение

Эта статья лишь небольшое введение в Apache Airflow. Я не раскрыл и 20% того, что умеет инструмент, но и такой задачи себе не ставил. Лучшим способом изучить Apache Airflow является работа с ним. Пробуйте, экспериментируйте, чтобы понять подходит он под ваши задачи или нет.

💌 Присоединяйтесь к рассылке

Понравился контент? Пожалуйста, подпишись на рассылку.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector