Maitrisez vos workflows avec Apache Airflow

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 !

By | 2017-07-24T21:37:13+00:00 July 17th, 2016|Évènements|0 Comments

About the Author:

Consultant Big Data @ Adaltas depuis 2015, César aime découvrir de nouvelles choses et expérimenter avec les nouvelles technologies en plus de son métier de tous les jours

Leave A Comment

Time limit is exhausted. Please reload the CAPTCHA.