Le futur de l’orchestration de workflows dans Hadoop: Oozie 5.x

Au DataWorks Summit Europe 2018 de Berlin, j’ai eu l’occasion d’assister a une session sur Apache Oozie. La présentation se concentre sur les caractéristiques du prochain Oozie 5.0 et celles à venir dans la branche 5.X. Elle détaille ainsi le Workflow Scheduler d’Apache Ambari et son utilisation pour créer et visualiser des workflows Apache Oozie.

La conférence intitulée “Breathing New Life into Apache Oozie with Apache Ambari Workflow Manager” était donnée par Artem Ervits, solutions engineer chez HortonWorks, et Clay Baenziger, membre de l’équipe infrastructure Hadoop chez Bloomberg. Les slides de la présentation sont disponibles ici.

Apache Oozie

Apache Oozie est l’orchestrateur de workflows privilégié de l’écosysteme d’Apache Hadoop. Il permet aux utilisateurs d’éxécuter une série d’actions en tant que Graphe Orienté Acyclique (Directed Acyclical Graph ou DAG) et comporte des actions natives pour la plupart des composants Hadoop tels que Hive, Sqoop, Distcp, etc… Une action shell est également présente : César en démontre les possibilités dans cet article.

Oozie est utilisé en production chez l’un de nos clients pour gérer des milliers de workflows, allant jusqu’à plusieurs centaines de jobs par jour dans un environnement sécurisé  (comprendre Kerberos + SSL).

C’est un outil très puissant, qui a cependant quelques points faibles. L’un des des principaux est son UI vieillissante. Nous espérons que les prochaines releases y pallieront, voir dès aujourd’hui avec Oozie 5.0, annoncé seulement 24h avant la conférence d’Artem et Clay. Voyons maintenant quelles sont ces nouveautés.

YARN Application Master

Enfin ! Si vous utilisez Oozie, vous comprendrez que cette fonctionnalité était attendue. Les launchers Oozie ne sont plus des tâches map du framework MapReduce mais désormais des Application Master YARN à part entière. Je me demandais à quoi cela ressemblait alors j’ai téléchargé et compilé la dernière version d’Oozie pour la déployer sur un cluster de test.

Voici un aperçu de job sous Oozie 5.0 effectuant une action shell :

Cela n’a pas l’air si important mais c’est quelque chose sur lequel les committers Oozie travaillent depuis longtemps (voir OOZIE-1770). Ils ont dû réimplémenter de nombreux morceaux de code pour y parvenir. Un des inconvénients (néanmoins très acceptable) est que Oozie 5.X ne supporte plus les version 1.X de Hadoop : la version minimale est désormais la 2.6.0. Parmi tous les changements, on peut noter la disparition de l’ancien launcher en tâche map dans OOZIE-2918.

Alternatives à la WebUI Oozie

C’est laid

Tous les utilisateurs d’Oozie savent que la WebUI est une catastrophe. Elle est basée sur ExtJS, un framework JavaScript obsolète, ce qui n’améliore pas sa maintenabilité. Malheureusement, aucune véritable avancée n’est à noter par rapport à la refonte de cette UI mais les discussions des committers Oozie à ce sujet peuvent être suivies ici. Espérons qu’une future release d’Oozie 5.X sera accompagnée d’une nouvelle UI.

En attendant, il y a des alternatives notables telles que Hue (Hadoop User Experience) ou le Workflow Manager d’Ambari.

Ce Workflow Manager est en fait une Ambari View qui peut également être déployée sur un cluster non-Ambari, ce que nous avons déjà fait pour un de nos clients chez Adaltas. Cette vue se présente sous la forme d’une GUI dans laquelle on peut construire et editer des workflows Oozie mais aussi les gérer et les visualiser.

Autorisations

Dans la release 4.2 de Oozie (dernière version supportée dans HDP 2.6.4), il n’y a pas de concept d’autorisations fines.

En effet, comme nous pouvons le constater dans la documentation officielle, le modèle est assez basique :

Users have read access to all jobs
Users have write access to their own jobs
Users have write access to jobs based on an Access Control List (list of users and groups)
Users have read access to admin operations
Admin users have write access to all jobs
Admin users have write access to admin operation

Il suffit d’avoir accès à la WebUI pour avoir un accès en lecture à tous les workflows, ce qui est assez problématique dans un environnement multi-tenant. Heureusement, la communauté est en train d’y travailler dans OOZIE-3196. Rien n’est encore officiellement publié mais un patch est déjà disponible.

Oozie diagnostic bundle tool

Une autre nouveauté remarquable est l’outil de paquetage pour le debugage de workflows. A l’origine développé en tant que fonctionnalité du Cloudera Manager, cet outil facilite la récolte d’informations utiles pour diagnostiquer un job : workflow.xml, job.properties, logs Oozie, variables d’environnements, etc.

Voici un exemple d’utilisation :

C’est utile pour rassembler rapidement toutes les informations nécéssaires lorsqu’un job ne fonctionne pas correctement. Malheureusement, il n’est pas encore capable de collecter les logs des containers YARN des différentes actions, mais c’est une fonctionnalité qui devrait bientôt voir le jour.

Quand pourrais-je utiliser ces fonctionnalités ?

A ce stade de l’article, vous vous demandez sans doute :

Génial ! Mais j’utilise HDP 2.X.X/Cloudera 5.X.X, quand vais-je pouvoir utiliser toutes ces nouveautés ?

La réponse est… pas encore. HDP 3.0 d’Hortonworks va très probablement être annoncé cet été cependant (d’après Artem Ervits), Oozie 5.0 a raté le train et n’apparaitra pas dans la stack, même s’il est possible de le voir apparaitre dans HDP 3.1. Au moment d’écrire ces lignes, la dernière version d’Oozie supportée par HortonWorks est la 4.2.0, avec un certain nombre de patch backportés (liste complète disponible ici).

Même son de cloche de l’autre côté de la baie de San Francisco chez Cloudera. La dernière version officielle est la 4.1.0 mais encore une fois de nombreuses fonctionnalités (certaines venant même de Oozie 5.X) sont disponibles comme on peut le constater dans cette liste.

Voici donc le tour des nouveautés dans Oozie 5.X, j’espère que cet article vous donne l’envie de vous lancer et de compiler la dernière version de cet outil très puissant. Je vous encourage vivement à le faire, c’est plus facile qu’il n’apparaît de builder et de déployer dans un envrionnement Hadoop de test.

Sources

Par | 2018-06-05T22:36:38+00:00 May 23rd, 2018|Big Data, DataWorks Summit 2018|1 Comment

À propos de l'auteur :

Un commentaire

  1. […] Le futur de l’orchestration de workflows dans Hadoop: Oozie 5.x La présentation se concentre sur les caractéristiques du prochain Oozie 5.0 et celles à venir dans la branche 5.X. Elle détaille ainsi le Workflow Scheduler d’Apache Ambari et son utilisation pour créer et visualiser des workflows Apache Oozie. […]

Laisser un commentaire