En mi labor como ingeniero de datos he visto varias herramientas que me interesa conocer, pero algunas de ellas son más complicadas de utilizar localmente que otras. Una de estas herramientas es airFlow, he utilizado varios tutoriales para realizar la instalación local desde Ubuntu para Linux hasta con Docker, pero al fin en tantas búsquedas logre encontrar un paso a paso que lograr tener la instalación de una manera correcta y "sencilla".
Quiero compartir con ustedes lo que aprendí y como realizar dicha instalación.
- ¿Qué es Apache AirFlow?
En mis propias palabras Airflow es un poderoso orquestador y automatizador de flujos de trabajo que se convierte en una herramienta aliada para todo profesional que está vinculado al mundo de la ciencia de datos.
- configuración de instancia EC2 de AWS para la instalación de Apache AirFLow.
En nuestra consola de AWS buscamos el servicio de EC2 y lanzaremos una instancia con las siguientes características:
*Nombre *: ApacheAirflow
*AMI *: Ubuntu
*Tipo de instancia *: T2.medium (preferiblemente, por temas de computo, pero puedes escoger instancia t2.micro que es de la capa gratuita)
Crear Par de Claves : tipo PEM, para lograr conexión SSH
*Grupo de seguridad *: habilitado SSH, HTTP y HTTPS y TCP Personalizados, agregamos el puerto 8080
Almacenamiento: Puedes seleccionar 8 GB, para este ejemplo lo deje en 20.
Lanzamos instancia y esperamos a que esté disponible:
Ahora seleccionamos nuestra nueva instancia y nos conectaremos por medio de opción por defecto que nos da AWS
- instalación de prerrequisitos en instancia Ubuntu
sudo apt update
sudo apt install python3-pip
sudo apt install sqlite3
sudo apt install python3.10-venv
python3 -m venv venv
Recuerda hacer uno por uno
Una vez instalado Python sqlite y venv, procederemos a la iniciación del ambiente en Python e instalación de librerías de ubuntu
source venv/bin/activate
sudo apt-get install libpq-dev
- instalación de apache Airflow
Utilizaremos la base de datos Postgresql para el manejo de información de Airflow e iniciaremos AirFlow :
pip install "apache-airflow[postgres]==2.5.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.5.0/constraints-3.7.txt"
airflow db init
sudo apt-get install postgresql postgresql-contrib
Ingresamos dentro de Posgres para realizar la creación de la base de datos y usuario, allí asignaremos todos los privilegios.
sudo -i -u postgres
psql
CREATE DATABASE airflow;
CREATE USER airflow WITH PASSWORD 'airflow';
GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow;
\q
logout
Ahora ya tenemos instalado Airflow con su base de datos PostgreSQL, ahora realizaremos algunas configuración internas dentro de apache para la ejecución correcta.
cd airflow
sed -i 's#sqlite:////home/ubuntu/airflow/airflow.db#postgresql+psycopg2://airflow:airflow@localhost/airflow#g' airflow.cfg
grep sql_alchemy airflow.cfg
grep executor airflow.cfg
sed -i 's#SequentialExecutor#LocalExecutor#g' airflow.cfg
grep executor airflow.cfg
Ahora crearemos las credenciales para el ingreso a Apache AirFlow:
airflow db init
airflow users create -u airflow -f airflow -l airflow -r Admin -e airflow@gmail.com
Nos va a pedir una contraseña escribimos: airflow y confirmamos :
- Iniciar Airflow :
Con este condigo lograremos iniciar tanto el webserver y scheduler :
airflow webserver &
airflow scheduler
Ahora si está todo listo para poder ingresar a Apache Airflow.
volvemos a nuestra consola de AWS y buscamos la instancia que acabamos de crear
Copiamos el DNS de IPv4 publica y esa URL le sumamos el puerto 8080 de esta manera :
ec2-54-152-205.compute-1.amazonaws.com:8080
Usuario: airflow
pass : airflow
y ahora tenemos Apache Airflow instalado en una instancia de EC2:
Espero que estos pasos les ayuden igual como me guio a mí en su momento.
Dejo URL en la cual me base para este proceso y créditos a Marc, un crack en esta herramienta:
https://www.youtube.com/watch?v=o88LNQDH2uI&t=619s
¡¡Gracias!!
Top comments (0)