Maitrisez vos workflows avec Apache Airflow

Maitrisez vos workflows avec Apache Airflow

By BEREZOWSKI César

17 juil. 2016

Catégories : Big Data, Tech Radar | Tags : Airflow, Cloud, DevOps, Python

Ci-dessous une compilation de mes notes prises lors de la présentation d’Apache Airflow par Christian Trebing de chez 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 Open Source

    • 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)

Développement

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 disponibles 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 entrants) 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 :

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 connexion à un serveur Kerberos et en Haute 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 !

Canada - Morocco - France

International locations

10 rue de la Kasbah
2393 Rabbat
Canada

Nous sommes une équipe passionnées par l'Open Source, le Big Data et les technologies associées telles que le Cloud, le Data Engineering, la Data Sciencem le DevOps…

Nous fournissons à nos clients un savoir faire reconnu sur la manière d'utiliser les technologies pour convertir leurs cas d'usage en projets exploités en production, sur la façon de réduire les coûts et d'accélérer les livraisons de nouvelles fonctionnalités.

Si vous appréciez la qualité de nos publications, nous vous invitons à nous contacter en vue de coopérer ensemble.