Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
SmartnSkilled E-learning

Le Oozie pour planifier vos flux d’exécution en Big Data !

30 Novembre 2018 , Rédigé par SmartnSkilled Publié dans #Informatique, #BigData

Le Oozie pour planifier vos flux d’exécution en Big Data !

Bienvenue au monde de Big Data ! 

L’environnement Big Data est très varié ! Donc on va se contenter aujourd'hui de présenter quelques projets phares en relation avec Big Data en général et avec Hadoop en particulier.

Découvrons ensemble l’écosystème de Big Data !

Commençons par le Hadoop 👉 GO...

Le Oozie pour planifier vos flux d’exécution en Big Data !

Ce noyau dur de la solution Big Data est composé de deux éléments essentiels :

  • HDFS / Hadoop Distributed File System au niveau duquel les données sont stockées.
  • La couche qui se trouve au-dessus de HDFS : YARN map Reduce v2 qui est décomposée en YARN (un gestionnaire de cluster Hadoop) et le map Reduce v2 (un modèle de concept permettant de manipuler des grandes quantités de données).

Ce modèle connait un vif succès auprès des sociétés possédant d’importants centres de traitement de données tels que Amazon et Facebook.

Les outils d’importation des données sont le Flume et le Sqoop

✨ Je vous cite aussi quelques composants en relation avec le Hadoop !

  • Le Zookeeper coordination qui est un logiciel de configuration des systèmes distribués.
  • Le Ambari qui est un logiciel permettant aux administrateurs de provisionner et de superviser un cluster Hadoop. Il est essentiellement utilisé pour intégrer Hadoop à une infrastructure donnée d’une entreprise existante.  
  •  Le R connectors : C'est un package R qui fournit une interface entre l’environnement local et Hadoop.
  • Le Spark qui est un Framework open source de calcul distribué. Il est en fait un ensemble d’outils de composants de logiciels structurés selon une architecture définie pour traiter les données en mémoire.
  • Le Storm qui est ultra-rapide, évolutif, tolèrent aux pannes, garantit le traitement des données et facile à configurer et à utiliser.
  •  Il présente de nombreux cas d’utilisation tels que l’analyse en temps réel, le calcul en continu, le Rpc distribué…etc        
  • Le Oozie : C'est un planificateur de workflow qui permet de donner les tâches d’importation envers le HDFS et permet également de notifier le HDFS en termes de fichiers importés et exportés.
  • Le Pig qui est un environnement script de requêtage des données issues de Map reduce.
  • Le Hive qui est aussi un environnement de requêtage des données issues de Hadoop.

 

On va partir sur les détails de Oozie 👉 GO...

Avant de présenter Oozie, on va énumérer trois situations pour comprendre mieux son rôle.

1ère situation : 3 lignes d’exécution des tâches d’importation des données vers un cluster Hadoop.

❎ La règle conditionnelle imposée : Présenter le job 2 au niveau du cluster Hadoop avant le job 6 au niveau de la ligne 1 étant donné que le rythme d’exécution au niveau de la ligne 1 est de loin supérieur que celui de la ligne 2.

Rôle d'Oozie - Première situation

 

Problématique : Dans ce cas là qui va assurer le respect de cette règle d’exécution ?

2ème situation : 3 lignes d’exécution des tâches d’importation des données vers un cluster Hadoop.

❎ Règles conditionnelle imposée :

  • L’exécution du job 5 au niveau de la ligne 1 doit se faire exactement à 01h50min. 
  • L’exécution du job 3 au niveau de la ligne 2 doit se faire exactement 07h15. 
  • L’exécution du job 4 au niveau de la ligne 3 doit se faire exactement à 04h00. 

Rôle d'Oozie - Deuxième situation

Problématique : Dans ce cas, qui va assurer le respect de cette contrainte temporelle imposée au niveau des 3 lignes ?

3ème situation : Au niveau de la première ligne, on va supposer que le job 6 de la ligne 1 produit un output (Des fichiers, des modifications au niveau des bases de données…etc).

❎ Règle conditionnelle imposée : L’output produit soit pris en amant au niveau de job 3 de la ligne 2

Rôle d'Oozie - Troisième situation

Problématique : Qui va orchestrer cette manœuvre ?

Prenez votre de temps pour répondre…

Vous allez certainement me dire que le map Reduce peut assurer ça !

Alors que ce n’est pas la bonne réponse ! 😉

Parce que d’une part le map Reduce existe au niveau du cluster et non pas au niveau de la phase d’importation des données et d’autre part la map Reduce n’a pas cette notion d’orchestration.

Il a deux tâches bien déterminées qui sont map et Reduce. D’où la nécessité d’un composant se situant en amant du cluster Hadoop et qui assure cette orchestration et le respect des règles d’exécution imposées.

La bonne réponse c’est   Oozie

Oozie est en fait un système de planification qui permet d’exécuter et de gérer des tâches Hadoop dans un environnement distribué. Il permet de combiner plusieurs tâches complexes dans un ordre séquentiel pour accomplir une tâche plus importante.

Oozie va donc assurer l’orchestration en parallèle de l’exécution de ces diverses tâches qui sont présentées au niveau des 3 lignes.

L’un des principaux avantages d’Oozie c’est qu’il est étroitement intégré à la pile Hadoop prenant en charge les diverses tâches Hadoop tels que Hive, Pig, Scoop…etc ainsi que des tâches spécifiques au système tels que les tâches Java. 

Les JOB ?

Ce sont trois types essentiels :

Les job d'Oozie

Comment éditer des Workflows ?

Il est possible de créer des Worklows à travers de :

1.    L’interface HUE 

Worklows : L’interface HUE

 

2.    Un Plugin installé au niveau d’Eclipse : Oozie Eclipse Plugin ou OEP. 

Oozie Eclipse Plugin ou OEP

 

3.    Entant que des fichiers .xml 

 

Oozie Eclipse Plugin ou OEP

Quels sont les composants de JOB ?

Un JOB ou un Workflow Oozie est composé de deux principaux éléments qui sont :

LAction Nodes : Peuvent être des actions de type Pig, Hive, map Reduce, Java…etc) 

Les Control Nodes : Représentant l’état du Workflow à l’instant t tels que StartForkJoinDecision, et End.

👉 On passe à traiter ensemble par la suite un exemple de flux d’exécution ou de Workflow Oozie :

Fichiers .xml

 

Le Workflow débute par le nœud du contrôle Start qui va lancer un nœud d’action de type Java, puis passe par la prise de décision dont le chemin diffère selon le choix de l’exécution du map Reduce ou Pig.

Si le workflow passe par le map Reduce, on arrive à enregistrer les données au niveau du HBASE ET au niveau du HDFS grâce au nœud Fork qui permet de diriger le flux d’exécution vers plusieurs directions.     

Si le flux d’exécution tourne vers le Pig, le résultat engendré sera join avec celui du map Reduce situé en aval du HDFS grâce au nœud de contrôle Join. Le résultat issu va être par la suite traité au niveau du nœud d’action Java et le End va marquer la fin de ce Workflow.

 

  

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article