Installer Apache Airflow avec Docker
Docker est le meilleur moyen de déployer Apache Airflow. Dans ce tutoriel je vous montre comment procéder.
Télécharger le fichier docker-compose.yaml
Veuillez créer un dossier dédié à Apache Airflow
Télechargez le fichier docker-compose.yaml
indiqué dans la documentation officielle.
docker-compose.yaml
est téléchargé sur votre machine dossier courant.
Créez les répertoires suivants
Définir AIRFLOW_HOME
La variable AIRFLOW_HOME
indique le chemin vers le dossier d'Apache Airflow
Initialiser la base de données
Dans un premier, il faut initialiser la base de données qui va stocker les données des utilisateurs et des flux qui seront créés.
Un utilisateurairflow
est également créé avec le mot de passe airflow
et le rôle Admin.
Démarrer les services de Airflow
Maintenant, il faut lancer les différents services d'Apache Airflow à savoir airflow-scheduler
, airflow-webserver
, airflow-worker
et airflow-triggerer
.
Une fois la commande exécutée, vous pouvez vérifier l'état des conteneurs déployés avec la commande suivante
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87cdbab20845 apache/airflow:2.6.1 "/usr/bin/dumb-init …" 3 hours ago Up 3 hours (healthy) 8080/tcp apache-airflow-airflow-triggerer-1
b9413c6fbeee apache/airflow:2.6.1 "/usr/bin/dumb-init …" 3 hours ago Up 3 hours (healthy) 8080/tcp apache-airflow-airflow-scheduler-1
61f7bd92877b apache/airflow:2.6.1 "/usr/bin/dumb-init …" 3 hours ago Up 3 hours (healthy) 0.0.0.0:8080->8080/tcp apache-airflow-airflow-webserver-1
aee2d3cea33b apache/airflow:2.6.1 "/usr/bin/dumb-init …" 3 hours ago Up 3 hours (healthy) 8080/tcp apache-airflow-airflow-worker-1
69979805360b redis:latest "docker-entrypoint.s…" 3 hours ago Up 3 hours (healthy) 6379/tcp apache-airflow-redis-1
dfb0b452a8f0 postgres:13 "docker-entrypoint.s…" 3 hours ago Up 3 hours (healthy) 5432/tcp apache-airflow-postgres-1
Docs Apache Airflow : Running Airflow in Docker
Connexion
Rendez-vous à l'adresse http://localhost:8080/. Vous serez redirigé vers la page de connexion
Connectez-vous avec l'utilisateur airflow
avec le mot de passe airflow
Arrêter Apache Airflow
Pour arrêter Apache Airflow, depuis le dossier d'Apache Airflow, lancez la commande suivante
PS C:\Users\Administrateur\Documents\dev\apache-airflow> docker compose down
time="2023-06-17T23:25:55Z" level=warning msg="The \"AIRFLOW_UID\" variable is not set. Defaulting to a blank string."
time="2023-06-17T23:25:55Z" level=warning msg="The \"AIRFLOW_UID\" variable is not set. Defaulting to a blank string."
[+] Running 8/8
- Container apache-airflow-airflow-worker-1 Removed 11.3s
- Container apache-airflow-airflow-webserver-1 Removed 12.0s
- Container apache-airflow-airflow-triggerer-1 Removed 5.5s
- Container apache-airflow-airflow-scheduler-1 Removed 9.1s
- Container apache-airflow-airflow-init-1 Removed 0.7s
- Container apache-airflow-postgres-1 Removed 0.8s
- Container apache-airflow-redis-1 Removed 0.6s
- Network apache-airflow_default Removed 0.7s
Il est souvent nécessaire d'installer des packages additionnels, on peut se connecter au conteneur et
Une fois à 'linstérieur du conteneur, vous pouvez installer les packages avec pip Cela marche bien mais ce n'est pas la bonne manière de faire. L'idéal c'est reconstruire l'image Airflow. Pour cela, créez un fichierDockerfile
dans le dossier que docker-compose.yml
avec le contenu suivant
FROM apache/airflow:2.6.1
USER airflow
COPY requirements.txt /requirements.txt
RUN pip install --no-cache-dir -r /requirements.txt
#!usr/bin/bash
docker compose down
docker compose build
docker compose up airflow-init -d
docker compose up -d
Airflow Component | Container |
---|---|
Web Server | apache-airflow-airflow-webserver |
Scheduler | apache-airflow-airflow-scheduler |
Executor | apache-airflow-airflow-worker , apache-airflow-airflow-triggerer |
Queue | apache-airflow-redis |
Workers | apache-airflow-airflow-worker |
Metadatabase | apache-airflow-postgres |
Bravo, tout est prêt maintenant. Dans la prochaine section, vous découvrirez les composants d'Apache Airflow.