Apache Airflow

Mis notas sobre Airflow.


Introducción

Por actividades profesionales me tocó saber de esta aplicación (o software, ya que decirle aplicación me parece raro dada la popularidad de las apps para móviles). Aunque el cliente del proyecto para el que estaba trabajando habilitó un equipo (o máquina virtual) en la que subí y probé mis DAGs, el deber ser para cualquier desarrollador es el de tener un Airflow local donde trabajar.

Yo había buscado instalarlo pero las primeras referencias que hallé hablaban de hacerlo con Docker o alguna máquina virtual que volvía algo complicado todo el asunto. Final y curiosamente encontré que en realidad su instalación es relativamente simple y sencilla.

Instalación

Windows

La instalación de Apache Airflow en Windows 10 se ha desestimado en un inicio, dada la experiencia con Apache Spark y algunas experiencias publicadas por otros a este respecto2. Veremos en el futuro.

Ubuntu (WSL)

En la instalación para Ubuntu funcionando en el Windows Subsystem for Linux, se han seguido las instrucciones de instalación que tanto se proveen en el sitio web del proyecto1 como de alguien que ya lo hizo2,3.

A manera de resumen la instalación consistió de los siguientes pasos:

Abriendo una terminal de Windows (que por defecto abre PowerShell… ¡arghhh!) desde la cual se inició una sesión en BASH:

> bash

donde se ejecutó:


$ sudo apt-get install software-properties-common
...
$ sudo apt-add-repository universe
...
$ sudo apt-get update
...
$ export SLUGIFY_USES_TEXT_UNIDECODE=yes
...
$ pip3 install apache-airflow

Este último comando llegó a mostrar un mensaje de error por algún problema de versiones pero, hasta donde se ha podido ver en las pruebas realizadas, parece no haber problema con ello.

ERROR: marshmallow-sqlalchemy 0.24.0 has requirement marshmallow>=3.0.0, but you'll have marshmallow 2.21.0 which is incompatible.

Instalado el software, se ha procedido con su inicialización y primeras pruebas de funcionamiento

$ airflow initdb
...
$ airflow list_dags
...
$ export AIRFLOW_HOME=~/airflow
$ airflow webserver -p 8088
...

macOS

La experiencia de instalación en «Big Sur» ha resultado inicialmente problemática pero ha dado lugar a un mejor entendimiento de este producto. Esta experiencia ocurre tiempo después al intento con Windows y a la realizada en Ubuntu.

En el proyecto en el que estoy trabajando se daban algunas instrucciones sobre la versión de Python 3.6 a usar. Al buscar instrucciones de instalación4 no encontré algo que indicara otra cosa. Las instrucciones de instalación dadas en ese sitio indican:

y tuve problemas para poder asignar a la variable PYTHON_VERSION el valor esperado. Estas fueron las instrucciones que yo usé en un entorno de conda.

$ conda create -n report python=3.6 
$ conda activate report 
$ pip install apache-airflow 
$ export AIRFLOW_HOME=~/Applications/Airflow 
$ AIRFLOW_VERSION=2.2.5 
$ PYTHON_VERSION=$(python --version 2>&1| awk -F"[ .]+" '{print $2"."$3}') 
$ CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" 
$ pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}" 
$ airflow standalone 

Al levantar el servicio, entre todos los mensajes que se muestran es difícil ver que hay un problema con la creación del usuario inicial del servicio. De hecho las credenciales de inicio no se entregan al momento de realizar el arranque por primera vez. Esto se solucionado instalando Airflow sobre Python 3.7.

Referencias

  1. «Apache AirflowApache Software Foundation, web. Visited: 2020.10.22. URL: https://airflow.apache.org/.
  2. John Humphreys’ answer to «How to run Airflow on WindowsStackOverflow, web, Published: 2018.12.27; visited: 2020.10.23. URL: https://stackoverflow.com/questions/32378494/how-to-run-airflow-on-windows.
  3. John Humphreys, «Apache Airflow Windows 10 Install (Ubuntu)Coding Stream of Consciousness, blog. Published: 2018.11.06; visited: 2020.10.22. URL: https://coding-stream-of-consciousness.com/2018/11/06/apache-airflow-windows-10-install-ubuntu/.
  4. «Running Airflow Locally«, Apache Airflow v2.2.5, web site. Visited: 2022.04.18. URL: https://airflow.apache.org/docs/apache-airflow/stable/start/local.html.

Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2020.10.22
Última actualización: 2022.04.18
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.