Maitrisez vos workflows avec Apache Airflow

Présentation par Christian Trebing de BlueYonder

Introduction

Use case : comment traiter des données arrivant régulièrement de leurs clients ?

  • Option 1 : utiliser le CRON
    • uniquement des déclancheurs temporels
    • compliqué de gérer les erreurs
    • peu commode lors du chevauchement d’un job en cours avec le lancement du suivant
  • Option 2 : écrire un outil de gestion des workflows
    • très facile au début
    • arrivée rapide aux limites: il reste à investir plus que prévu ou faire avec
  • Option 3 : utiliser un outil de gestion de workflows OpenSource
    • beaucoup d’options
    • BlueYonder a choisi Apache Airflow

Apache Airflow

Apache Airflow est un outil de gestion et supervision de workflows comme Apache Oozie or Azkaban

  • Écrit en Python
  • Workflows définis en Python
  • Interface présentant une vue des jobs actuels et passés & les logs des jobs
  • Extensible via des plugins
  • Développement du projet actif
  • Propose une belle UI et une interface REST
  • Relativement léger (2 processus et une base de données)

Developpement

Un job Airflow est composé de plusieurs opérateurs, un opérateur étant une étape du job, et de senseurs pour récupérer les données entrantes. Dans un workflow, le DAG doit être construit à la main opérateur par opérateur.

Plusieurs opérateurs sont disponible dans Airflow :

  • BashOperator
  • SimpleHttpOperator

et senseurs :

  • HttpSensor
  • HdfsSensor

ou vous pouvez implémenter vos propres opérateurs / senseurs en Python. Airflow supporte également le dédoublement de flux dans un workflow (branching).

Gestion de l’état

  • Les variables sont relatives à l’instance Airflow
  • Les communications extérieures (gestion des flux entrant) sont gérées au niveau du DAG.
  • Ces états sont persistés dans la base de donnée de gestion.

Déploiement

Airflow utilise deux processus et une base de données :

  • scheduler
  • server web
  • base de données (PostgreSQL, SQLite, …)

Notes

  • Airflow ne gère pas la personnification d’utilisateurs, cela doit être fait à la main
  • La Haute Disponibilité n’est pas supportée nativement
  • Le use case présenté n’avait pas de besoin de connection à un serveur Kerberos et en Haude Disponibilité

Conclusion

Airflow semble être une très bonne alternative à Oozie et ses workflows XML. Nous aurions adoré qu’il utilise JavaScript et NodeJS plutôt que Python !

Par |2018-06-05T22:37:04+00:00July 17th, 2016|Évènements|1 Comment

À propos de l'auteur :

César Berezowski est un architecte solution BigData & Hadoop et un Data Engineer avec 3 ans d’expérience sur Hadoop et les systèmes distribués. Il a conçu, développé et opéré des workflows d’ingestion de données et des services temps réels tout en accompagnant ses clients dans la définition de leurs besoins et dans leur mise en application. Il est polyvalent sur les plateformes BigData, de la planification, la conception et l’architecture du déploiement de clusters, l’administration, la maintenance ainsi que le prototypage et l’industrialisation d’applications en collaboration avec les utilisateurs métiers, les analystes, les data scientists, les ingénieurs et les équipes d’exploitation. Il aime découvrir de nouvelles choses et expérimenter de nouvelles technologies au-delà de son travail. Il est aussi doté d’une expérience en tant que formateur facilitant le transfert de connaissance et la formation des équipes.

Un commentaire

  1. Jules October 8, 2018 à 10:35 am - Répondre

    Merci pour cette présentation de AIRFLOW.

    A votre avis à ce jour : AIRFLOW est t’il plus mature que Oozie ?

Laisser un commentaire