Retour
ML & IA
Novembre 2021

Spark avec Airflow sur Qarnot Cloud

Apache Airflow (ou simplement Airflow) est une plateforme permettant de créer, planifier et surveiller des workflows par programmation. Il peut être utilisé pour concevoir des workflows sous forme de Graphes Orientés Acycliques (DAGs) de tâches et définir un pipeline de tâches automatisé à exécuter les unes après les autres.

Ce guide rapide, étape par étape, explique comment utiliser Airflow en association avec Spark pour exécuter automatiquement un workflow sur Qarnot.

Versions

Si une autre version vous intéresse, veuillez nous envoyer un courriel à qlab@qarnot.com.

Prérequis

Avant de démarrer un calcul avec le SDK Python, quelques étapes sont nécessaires :

  1. Récupérer le jeton d'authentification
  2. Installer le SDK Python de Qarnot (ici)

Note : En plus du SDK Python, Qarnot fournit des SDK C# et Node.js ainsi qu'une ligne de commande.

Cas de test

Ce tutoriel présente comment exécuter un workflow Airflow sur Qarnot depuis votre ordinateur. Le workflow est le suivant :

Toutes ces étapes seront exécutées successivement sans aucune intervention manuelle de l'utilisateur.

Avant d'aller plus loin, vous devez configurer votre environnement de travail pour qu'il contienne les fichiers suivants, téléchargeables ici :

Lancement du cas de test

Une fois que vous avez téléchargé tous les fichiers nécessaires, suivez les étapes ci-dessous pour vous assurer d'avoir tout ce dont vous avez besoin.

Activez votre environnement virtuel Python et assurez-vous que le SDK Qarnot y est installé. Si vous avez des doutes sur la marche à suivre, vous pouvez consulter la documentation sur l'installation du SDK pour des étapes simples à suivre.

Installez ensuite Airflow et ses dépendances en exécutant la commande suivante : pip install apache-airflow['cncf.kubernetes']

Ajoutez votre clé publique SSH à la place de <<<MY PUBLIC SSH KEY>>> dans dags/dag_spark.py.

Ajoutez votre jeton secret dans config/qarnot.conf à la place de <<<MY_SECRET_TOKEN>>>.

Déplacez le dossier custom_operators/ vers les site-packages de votre environnement virtuel. Assurez-vous de remplacer <<<VENV>>> par le nom de votre environnement virtuel et le X de pythonX par votre version de Python. Note : Il est recommandé de travailler à l'intérieur d'environnements virtuels Python pour garantir la reproductibilité et maintenir les environnements de travail propres.

mv custom_operators/ <<<VENV>>>/lib/pythonX/site-packages/

Définissez votre répertoire Airflow principal (Airflow home) comme votre répertoire actuel : export AIRFLOW_HOME="$PWD"

Initialisez Airflow : airflow db init

Construisez votre DAG nommé my_first_dag : python3 dags/dag_spark.py

Lancez le workflow Airflow sur Qarnot avec la date de début souhaitée : airflow dags backfill my_first_dag -s 2000-01-01

Quelques notes à retenir :

Résultats

À tout moment, vous pouvez surveiller l'état de votre tâche sur notre plateforme ainsi que depuis votre terminal local.

Vous pouvez visualiser les sorties dans votre bucket de résultats airflow-spark-out. Vous y trouverez le nombre de mots contenus à la fois dans l'Iliade et dans la version concaténée 100 fois, ainsi que différents logs d'exécution.

Conclusion

C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous vous aiderons avec plaisir !

Retour

Nos articles