Vous êtes sur la page 1sur 39

Modes de traitement

Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Framework de traitement

• Map-Reduce
• Pig
• Hive
• Impala
• Spark
• Flink
• etc
115
Map-Reduce
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce

117
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map Reduce: Introduction


Idée: Découper le programme en plusieurs sous-problèmes
de taille réduite à exécuter sur chaque machine du cluster.

• Publication issue du département de recherche de Google


en 2004:

• MapReduce: Simplified Data Processing on Large


Clusters.

118
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map Reduce: Introduction

• Fusionne le calcul et les données (combine le stockage


et le traitement ensemble)

• Le nœud de stockage est également nœud de calcul


(autant de traitement que de stockage)

• "Déplacer le code vers les données"

119
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Défis du traitement parallèle avant Hadoop

1.Distribution du code vers le cluster

2.Distribution uniforme des données sur le cluster

3.Exécuter des tâches en parallèle

4.Collecter tous les résultats

5.Récupération en cas échecs, si nécessaire

 Hadoop - MapReduce fait tout ça!


120
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce
• Patron d’architecture de traitement

• Permet de traiter des données volumineuses de


manière parallèle et distribuée

• Les langages utilisés : Java, Python ou Ruby

• Au lieu de parcourir le fichier séquentiellement


(beaucoup de temps), il est divisé en morceaux qui sont
parcourus en parallèle.

121
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce
• Ce modèle se base sur 2 étapes :

1. Mapping (map tasks) : le développeur définit une fonction de mappage dont le but
sera d'analyser les données brutes contenues dans les fichiers stockés sur HDFS pour
en sortir les données correctement formatées.

2. Réduction (reduce tasks) : cette tâche


récupère les données construites dans
l'étape du mappage et s'occupe de les
analyser dans le but d'en extraire les
informations les plus importantes.
122
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Résolution
• Pour résoudre un problème via la méthodologie MapReduce avec
Hadoop, on devra donc:

1. Choisir une manière de découper les données d'entrée de


telle sorte que l'opération MAP soit parallélisable.

2. Définir quelle CLEF utiliser pour notre problème.

3. Écrire le programme pour l'opération MAP.

4. Ecrire le programme pour l'opération REDUCE.

• … et Hadoop se chargera du reste (problématiques calcul distribué,


groupement par clef distincte entre MAP et REDUCE, etc.).

123
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1
• On souhaite déterminer pour un travail de recherche quels sont
les mots les plus utilisés au sein d’un texte.

• Etape 1: déterminer une manière de découper (split) les


données d'entrée pour que chacune des machines puisse
travailler sur une partie du texte.

• Notre problème est ici très simple – on peut par exemple


décider de découper les données d'entrée ligne par ligne.
Chacune des lignes du texte sera un fragment de nos
données d'entrée.

124
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1

• Pour simplifier les choses, on va


avant le découpage:
• Supprimer toute ponctuation et
tous les caractères accentués.
• On va également passer
l'intégralité du texte en
minuscules.

125
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1

• On obtient 4 fragments depuis nos


données d'entrée

126
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1

• Etape 2: On doit désormais déterminer la clef à utiliser pour notre


opération MAP, et écrire le code de l'opération MAP elle-même.

• Puisqu'on s'intéresse aux occurrences des mots dans le texte, et qu'à terme
on aura après l'opération REDUCE un résultat pour chacune des clefs
distinctes, la clef qui s'impose logiquement dans notre cas est: le mot-lui
même.

• Etape 3: Quand à notre opération MAP, elle sera elle aussi très simple: on
va simplement parcourir le fragment qui nous est fourni et, pour chacun
des mots, générer le couple clef/valeur: (MOT ; 1). La valeur indique ici
l’occurrence pour cette clef - puisqu'on a croisé le mot une fois, on donne la
valeur « 1 ».
127
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1

128
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1
• Une fois notre opération MAP effectuée (de
manière distribuée), Hadoop groupera (shuffle)
tous les couples par clef commune.

• Cette opération est effectuée automatiquement


par Hadoop.

• Elle est, là aussi, effectuée de manière distribuée


en utilisant un algorithme de tri distribué, de
manière récursive. Après son exécution, on
obtiendra les 15 groupes suivants:

129
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1
• Etape 4: Il nous reste à créer notre opération
REDUCE, qui sera appelée pour chacun des
groupes/clef distincte.

• Dans notre cas, elle va simplement consister à


additionner toutes les valeurs liées à la clef
spécifiée:

130
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1

• Une fois l'opération REDUCE effectuée, on


obtiendra donc une valeur unique pour
chaque clef distincte.

• En l’occurrence, notre résultat sera:

131
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Map-Reduce: Exemple1 (Synthèse)

132
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Programmation Hadoop
• Comme indiqué précédemment, Hadoop est développé en Java.

• Les tâches MAP/REDUCE sont donc implémentables par le biais d'interfaces Java. Un programme Hadoop se compile au sein

d'un .jar.

• Pour développer un programme Hadoop, on va créer trois classes distinctes:

1. Une classe dite « Driver » qui contient la fonction main du programme. Cette classe se chargera d'informer Hadoop des

types de données clef/valeur utilisées, des classes se chargeant des opérations MAP et REDUCE, et des fichiers HDFS à

utiliser pour les entrées/sorties.

2. Une classe MAP (qui effectuera l'opération MAP).

3. Une classe REDUCE (qui effectuera l'opération REDUCE).


133
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Architecture d’un système de traitement


distribué
1. La puissance de traitement nécessaire est trop grande pour
une seule machine
•Faire le traitement sur plusieurs machines indépendantes
2. Comment coordonner plusieurs travailleurs / nœuds?
•Un maître pour coordonner
3. La communication
•Chaque nœud envoie un battement de cœur au nœud
maître

134
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Architecture d’un système de traitement


distribué
4. Comment puis-je distribuer les données d'entrée entre les
nœuds?
•Les données sont déjà distribuées, grâce à HDFS!
5. Prise en charge de l'échec
•Si un nœud a échoué, nous devons donner la tâche à un autre
nœud.
Q: Reprendre une tâche ou redémarrer une tâche?

 Nous avons ainsi presque conçu MapReduce.


135
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

MapReduce Architecture (V1)

Job Tracker

Task Task Task Task


Tracker Tracker Tracker Tracker

136
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

MapReduce Architecture (V1)


• Deux processus JobTracker et TaskTracker

• Tasktracker : exécute une fonction map ou reduce, envoie des rapports d'avancement au ...

• Jobtracker : assigne les différentes tâches aux différents tasktracker

137
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Job Tracker (JT) / Task Tracker (TT)


Job Tracker Task Tracker
• JT le "maître" de MapReduce, uniquement un JT par • Les TTs sont les esclaves
cluster • Les TT s’exécutent sur chacun des nœuds et
• JT est un processus Java démon (en background) exécutent des tâches Map/Reduce
• JT n'exécute aucun travail MR et surveille les progrès • TT est un processus Java démon (en background)
réalisés • Les TT envoient des pulsations régulières à JT
• Gère les autres trackers de tâches • L'échec est toléré (pas critique)
• Surveille les battements du cœur
• Déconnecte les nœuds qui ne répondent pas, récupère
les erreurs, et redémarre les tâches lentes et les tâches
qui ont échoué
• S’occupe de la répartition des charges de travail aux TT
(distribution des tâches)
• L'échec est critique (son échec est un problème: SPOF) 138
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Hadoop = HDFS + MapReduce


Name
Node

Data Data Data Data


Node Node Node Node

Job
Tracker

Task Task Task Task


Tracker Tracker Tracker Tracker 139
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Hadoop = HDFS + MapReduce


Master nodes

Name Job
Node Tracker
Workers are Worker / Data
Co-located nodes

Data Data Data Data


Node Node Node Node

Task Task Task Task


Tracker Tracker Tracker Tracker
140
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Hadoop Architecture (V1)

141
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Gestion des ressources


• MapReduce a un modèle de gestion de mémoire non flexible basé sur les slots.

• Chaque TaskTracker est configuré au démarrage pour avoir un nombre bien


déterminé de slots (map slot, reduce slot) pour l’exécution des tâches

• Une tâche est exécutée dans un seul slot

• Les slots sont configurés au démarrage pour avoir un maximum d’espace


mémoire

142
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Limites de MPR1
• Scalabilité limitée : Le JobTracker s’exécute sur une seule machine.

Ses rôles sont : Gestion des ressources, ordonnancement & suivi des Job

• Problème de disponibilité : Le JobTracker est un SPOF (Single Point of Failure).


S’il est endommagé, tous les jobs doivent être redémarrés.

• Problème d’utilisation des ressources : Il y a un nombre prédéfini de slots


map et de slots reduce pour chaque TaskTrackers.

• Utilisation des applications non-MapReduce : Le JobTracker est intégré à


MapReduce et ne supporte que les applications utilisant le framework de
programmation MapReduce (programmation en mode "batch") 143
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Nouveautés Hadoop 2
• YARN – Possibilité de traitement de Terabytes et Petabytes de données existants dans HDFS
en utilisant des applications Non-MapReduce

• Resource Manager – Séparation des deux fonctionnalités essentielles du JobTracker (gestion


des ressources et ordonnancement & suivi des jobs) en deux composants séparés :
• Gestionnaire de Resource
• Gestionnaire d’application (nœud de traitement)

JobTracker et TasckTracker n’existent plus.

144
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Ordonnanceur de capacité

• MPR1 : L’ordonnanceur assure un nombre bien déterminé de slots pour chaque groupe
d’utilisateurs.

Si on n’a pas de job mapReduce en cours, perte de ressources datanode.

• MPR2 : L’ordonnanceur de capacité ( Capacity Scheduler) garantit un partage de slots par tous les
groupes d’utilisateurs

Maximisation de l’utilisation des ressources

145
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

YARN
• Hadoop 2.0 fournit des APIs YARN pour
supporter d’autres frameworks qui pourront
interagir avec HDFS.

• Possibilité d’exécuter des applications Big Data


non-MapReduce dans Hadoop.

• Exemple: Spark, MPI, Giraph, et HAMA

146
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

YARN
• YARN sépare la gestion des ressources/ordonnancement des job du traitement des données,
permettant à Hadoop de supporter d’autre applications de traitement de données.

147
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

V1 vs. V2

Hadoop v2
Hadoop v1 MapReduce Other
V2
MRV1
1) Processing
2) Resource Management
YARN
(Resource Management)

HDFS HDFS
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Hadoop to YARN
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

MapReduce avec YARN?


•MapReduce ne va nulle part!
•Fonctionne très bien pour le traitement par lots
•A fait ses preuves
• Génère beaucoup de code

•Sous YARN:
•Plus de JobTracker unique
•Chaque travail MapReduce exécute une application
•L'échec d'un AppMaster provoque uniquement donc l'échec de ce travail.
Les autres emplois sont isolés et protégés.
150
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Synthèse:
MR n’est pas le bon choix pour les petites BD!

151
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist

Le présent et l'avenir de Hadoop


•Hadoop est la première génération de la technologie Big Data

• A fait ses preuves!

• Big Data évolue vers Fast Data


•Les outils Big Data de deuxième génération apparaissent
•Spark, Flink, Samza

• Le rôle de Hadoop aujourd’hui


•Continuer à être un "lac de données"
•Etre un écosystème Big Data hébergeant d'autres
technologies
152

Vous aimerez peut-être aussi