CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 50
QU’EST CE QUE HADOOP ?
Hadoop est un framework (une boite à outil) Java open
source utilisé pour le stockage et traitement des
données massives
Les données sont stockées sur des serveurs standard
peu coûteux configurés en clusters
Principe :
Diviser les données et les sauvegarder sur une
collection de machines, appelées cluster
Traiter les données directement là où elles sont
stockées, plutôt que de les copier à partir d’un
serveur distribué
Il est possible d’ajouter des machines à votre cluster, au
fur
Ines BEN et à mesure que les données augmentent
MESSAOUD 51
QU’EST CE QUE HADOOP ?
Hadoop se compose de deux parties :
HDFS (Hadoop MapReduce : Traitement
Distributed File des données massives
System) : Stockage des
données massives
Exécuter les
Manipuler données
des d’une façon
fichiers parallèle
Ines BEN MESSAOUD 52
QU’EST CE QUE HADOOP ?
Définir des
traitements
distribués
Système de
Gestion des
Gérer
gérer le
le Ressources du
Ines BEN MESSAOUD
stockage Cluster
53
HDFS (Hadoop Distributed File System)
distribué
Hadoop YARN (Yet Another Resource Negotiator)
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 54
ÉCOSYSTÈME DE HADOOP
En plus des briques de base
Yarn MapReduce/HDFS,
plusieurs outils existent pour
permettre:
L’extraction et le
stockage des données
de/sur HDFS
La simplification des
opérations de
traitement sur ces
données
La gestion et
coordination de la
plateforme
Ines BEN MESSAOUD 55
Le monitoring du cluster
Des ÉCOSYSTÈME
permettent
outils
la
DE HADOOP Des outils se
trouvent
directement au
gestion et
dessus de HDFS
administration de
(Impala aussi)
Hadoop
Des outils se trouvent au
Des outils
Ines BEN permettent de connecter
MESSAOUD
dessus de
56 la couche Yarn
HDFS aux sources externes
/ MapReduce
Des outils se trouvent au
ÉCOSYSTÈME DE HADOOP dessus de la couche Yarn /
MapReduce
Apache Oozie :
Est un logiciel de la
Fondation Apache servant
à l'ordonnancement de
flux dédié au logiciel
Hadoop
Est implémenté comme
une application Web Java
Apache Oozie est un
système d'orchestration de
workflows pour le traitement
des big data.
Il planifie et gère des tâches dans des environnements Hadoop, en
Inesassurant
BEN MESSAOUD une coordination efficace entre les différentes57 étapes d'un
workflow
Des outils se trouvent au
ÉCOSYSTÈME DE HADOOP dessus de la couche Yarn /
MapReduce
Apache Pig :
Est une plate-forme
d'analyse de grands
ensembles de données à
travers un langage de haut
niveau (Pig Latin) pour
exprimer des programmes
(séquence de programme
MapReduce) d'analyse de
données
Le langage de
programmation est très
utile pour analyser de
Le langage de programmation est conçu
larges ensembles de
pour fonctionner sur n’importe quel
données
Ines BEN MESSAOUD 58
type de données
Des outils se trouvent au
ÉCOSYSTÈME DE HADOOP dessus de la couche Yarn /
MapReduce
Apache Mahout :
Est une bibliothèque
d’apprentissage
automatique pour
Apache Hadoop
Contient des algorithmes
pour le traitement des
données, tel que le
filtrage, la classification et
le clustering
Ines BEN MESSAOUD 59
Des outils se trouvent au
ÉCOSYSTÈME DE HADOOP dessus de la couche Yarn /
MapReduce
R Connectors :
Est un package R qui
fournit une interface entre
l'environnement R local et
Hadoop
Permet de copier des
données entre la mémoire
utilisée par R, le système
de fichiers local et HDFS
Permet de planifier
l'exécution de
programmes R en tant
que tâches MapReduce,
puis renvoyer les
résultats
Ines BEN MESSAOUD 60
Des outils se trouvent au
ÉCOSYSTÈME DE HADOOP dessus de la couche Yarn /
MapReduce
Apache Hive :
Est une infrastructure
d’entrepôt de données
Permet la manipulation
de grandes masses de
données
Réalise des traitements
sur des data sets avec le
langage SQL
Ines BEN MESSAOUD 61
Des outils se trouvent
ÉCOSYSTÈME DE HADOOP directement au dessus de
HDFS
Apache HBase :
Est un système de
gestion de base de
données non
relationnelle orienté
colonnes qui fonctionne
sur HDFS
Ne prend pas en charge
les langages de requête
structuré comme SQL
Ines BEN MESSAOUD 62
Des outils se trouvent
ÉCOSYSTÈME DE HADOOP directement au dessus de
HDFS
Apache Impala (non
représenté dans la figure)
:
Permet le requêtage de
données directement à
partir de HDFS (ou de
Hbase) en utilisant des
requêtes Hive SQL
Ines BEN MESSAOUD 63
Des outils permettent de
ÉCOSYSTÈME DE HADOOP connecter HDFS aux sources
externes
Apache Sqoop :
Permet la lecture et
l’écriture des données à
partir de bases de
données externes
Ines BEN MESSAOUD 64
Des outils permettent de
ÉCOSYSTÈME DE HADOOP connecter HDFS aux sources
externes
Apache Flume :
Permet de collecter,
déplacer et analyser des
fichiers logs générés par
les serveurs Web vers
Hadoop HDFS
Est utile pour l'analyse
des sentiments
Ines BEN MESSAOUD 65
Des outils permettent la
ÉCOSYSTÈME DE HADOOP gestion et administration de
Hadoop
Apache Ambari :
Est un outil pour le
provisionnement, gestion
et monitoring des clusters
Ines BEN MESSAOUD 66
Des outils permettent la
ÉCOSYSTÈME DE HADOOP gestion et administration de
Hadoop
Apache Zookeeper :
Fournit un service
centralisé pour
maintenir les
informations de
configuration, de
nommage et de
synchronisation
distribuée
Ines BEN MESSAOUD 67
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 68
ARCHITECTURE DE HDFS
Ines BEN MESSAOUD 69
ARCHITECTURE DE HDFS
HDFS est un système de fichiers distribué, extensible et
portable
Ecrit en Java
Permet de stocker de très gros volumes de données sur
un grand nombre de machines (nœuds) équipées de
disques durs => Cluster
Quand un fichier [Link] est enregistré dans HDFS,
il est décomposé en grands blocs (par défaut 64Mo),
chaque bloc ayant un nom unique: blk_1, blk_2…
Ines BEN MESSAOUD 70
ARCHITECTURE DE HDFS
Nœuds
[Link] (150 Mo)
Cluster
blk-1 64 Mo
blk-2 64 Mo
blk-3 22 Mo
Ines BEN MESSAOUD 71
ARCHITECTURE DE HDFS
HDFS repose sur deux serveurs (des daemons):
NameNode : Le maître (Master)
Stocke les informations relatives aux noms de
fichiers, leurs nombres de blocs ainsi que leurs
emplacements.
Il y a un seul NameNode dans tout le cluster
Hadoop
DataNode : L’esclave (Slave)
Stocke les blocs de données eux-mêmes.
Il y a un DataNode pour chaque machine au sein du
cluster
Ines BEN MESSAOUD 72
ARCHITECTURE DE HDFS
Par défaut, les données sont divisées en blocs de
64MO
Remarque : La taille d'un bloc dans HDFS est
de 128MO pour les nouvelles versions
d'Hadoop (Hadoop 2.x)
Hadoop est inspiré de GFS, un système de fichier
distribué conçu par Google
L'implémentation de HDFS a son origine dans un
whitepaper issu du Département de recherche de
Google (« The Google File System », 2003).
Ines BEN MESSAOUD 73
ARCHITECTURE DE HDFS
DN DN
DN
DN DN
NN
[Link] (150 Mo)
Cluster
blk-1 64 Mo
Chaque bloc est enregistré dans un nœud blk-2 64 Mo
différent du cluster
blk-3 22 Mo
Ines BEN MESSAOUD 74
DN : DataNode
NN : NameNode
ARCHITECTURE DE HDFS
Les problèmes possibles ?
Panne de réseau ?
Panne de disque sur les DataNodes
?
Pas tous les DataNodes sont utilisés
?
Les tailles des blocs sont différentes
?
Panne de disque sur les
NameNodes ?
Ines BEN MESSAOUD 75
ARCHITECTURE DE HDFS
Si l’un des nœuds a un problème, est ce
que les données seront perdues ?
Hadoop réplique chaque bloc 3 fois (par défaut)
Il choisit 3 nœuds au hasard, et place une copie du bloc
dans chacun d’eux
Si un nœud est en panne, le NameNode (NN) le
détecte, et s’occupe de répliquer encore les blocs qui y
étaient hébergés pour avoir toujours 3 copies stockées
Ines BEN MESSAOUD 76
ARCHITECTURE DE HDFS
DN DN
DN
DN DN
NN
[Link] (150 Mo)
Cluster
blk-1 64 Mo
blk-2 64 Mo
blk-3 22 Mo
Ines BEN MESSAOUD 77
DN : DataNode
NN : NameNode
ARCHITECTURE DE HDFS
Si le NameNode a un problème, que se
passe t-il ?
Si c’est un problème d’accès (réseau)
Les données sont temporairement inaccessibles
Si le disque du NameNode est défaillant
Les données seront perdues à jamais !!!!
Ines BEN MESSAOUD 78
ARCHITECTURE DE HDFS
Name Node :
FS Image
Edit Log
Définition d’un autre NameNode pour reprendre le travail
si le NameNode actif est défaillant
Secondary NameNode (V1)
Standby NamaNode (V2)
NameNode High Avalibility (V3)
Garantit le fonctionnement continu du cluster
HDFS même en cas de défaillance d’un NN (éviter
les interruptions de service)
Ines BEN MESSAOUD 79
ARCHITECTURE DE HDFS
DN DN
DN
NN
Standby
DN
NameNode
DN
NN
[Link] (150 Mo)
Cluster
blk-1 64 Mo
blk-2 64 Mo
blk-3 22 Mo
Ines BEN MESSAOUD 80
DN : DataNode
NN : NameNode
Je veux écrire OK, Envoie aux
ÉCRITURE D’UN FICHIER
mon fichier
« [Link] » sur
DataNode 1, 2 et 5
HDFS
NameNode
[Link] (140 MO)
blk-1 blk-2 blk-3
DataNode 1 DataNode 2 DataNode 3 DataNode 4 DataNode 5
blk-1 blk-2 blk-1 blk-2 blk-3
blk-2 blk-3 blk-3 blk-1
Ines BEN MESSAOUD
Les DataNodes 1, 2 et 5 s'occuperont – en informant le NameNode – de
81
répliquer les données
entre eux pour éviter toute perte de données.
ÉCRITURE D’UN FICHIER
1. Le client indique au NameNode qu'il souhaite écrire un
bloc.
2. Le NameNode indique le DataNode à contacter.
3. Le client envoie le bloc au DataNode.
4. Les DataNodes répliquent les blocs entre eux.
5. Le cycle se répète pour le bloc suivant.
Ines BEN MESSAOUD 82
OK,
Je veux lire le 3 blocs :
LECTURE D’UN FICHIER
fichier « [Link] »
sur HDFS
blk-1 : DN1, DN3, DN5
blk-2 : DN1, DN2, DN4
blk-3 : DN2, DN3, DN5
blk-1
NameNode
blk-2
[Link] (140 MO) blk-3
DataNode 1 DataNode 2 DataNode 3 DataNode 4 DataNode 5
blk-1 blk-2 blk-1 blk-2 blk-3
blk-2 blk-3 blk-3 blk-1
Ines BEN MESSAOUD 83
LECTURE D’UN FICHIER
1. Le client indique au NameNode qu'il souhaite lire un
fichier.
2. Le NameNode indique sa taille ainsi que les différents
DataNodes contenant les blocs.
3. Le client récupère chacun des blocs sur l'un des
DataNodes.
4. Si le DataNode est indisponible, le client en contacte un
autre (i.e., DataNode).
Ines BEN MESSAOUD 84
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 85
COMMANDES HDFS
La commande permettant de stocker ou extraire des
fichiers de HDFS est l'utilitaire console
hdfs (ou hadoop),
avec l'option dfs (ou respectivement fs)
Ines BEN MESSAOUD 86
COMMANDES HDFS
Lister le contenu d’un répertoire
La commande ls permet de lister le contenu d’un
répertoire
hdfs dfs -ls <chemin du répertoire>
Créer un répertoire
La commande mkdir permet de créer un dossier dans
HDFS
hdfs dfs -mkdir <chemin du nouveau
répertoire>
Ines BEN MESSAOUD 87
COMMANDES HDFS
Afficher le contenu d’un fichier
La commande cat permet d’afficher dans le terminal le
contenu d’un fichier
hdfs dfs -cat <chemin du fichier>
Charger un fichier sur HDFS (enregistrer un fichier)
Les commandes put et copyFromLocal permettent de
charger un ou plusieurs fichiers du local sur HDFS
hdfs dfs -put <local src path> <dst path on
HDFS>
hdfs dfs
Ines BEN MESSAOUD -copyFromLocal <local src path>
88
<dst path on HDFS>
COMMANDES HDFS
Récupérer un fichier depuis HDFS
Les commandes get et copyToLocal permettent de
récupérer des fichier HDFS sur votre local (copier)
hdfs dfs -get <HDFS src path> <local dst
path>
hdfs dfs -copyToLocal <HDFS src path>
<local dst path>
Déplacer un fichier
La commande mv est utilisée pour déplacer des fichiers
sur HDFS (d’un emplacement à un autre)
hdfs dfs
Ines BEN MESSAOUD
-mv <HDFS src path> <HDFS 89
dst
path>
COMMANDES HDFS
Copier un fichier
La commande cp est utilisée pour copier des fichiers
sur HDFS
hdfs dfs -cp <HDFS src path> <HDFS dst
path>
Supprimer un fichier
La commande rm permet de supprimer un fichier dans
HDFS
hdfs dfs -rm <HDFS file path>
Ines BEN MESSAOUD 90
COMMANDES HDFS
Supprimer un répertoire
La commande rmdir permet de supprimer un répertoire
HDFS vide
Pour supprimer un répertoire non vide de manière
récursive, il faut utiliser la commande rm -r
hdfs dfs -rmdir <empty HDFS dir path>
hdfs dfs -rm -r <non empty HDFS dir path>
Ines BEN MESSAOUD 91
COMMANDES HDFS : EXEMPLES
Créer le répertoire /data_input dans HDFS
hdfs dfs -mkdir /data_input
Stocker le fichier « [Link] » sur HDFS dans le
répertoire (/data_input)
hdfs dfs -put [Link] /data_input
Ou bien
hdfs dfs -copyFromLocal [Link]
/data_input
Ines BEN MESSAOUD 92
COMMANDES HDFS : EXEMPLES
Copier le fichier « [Link] » (Chemin
/data_input/[Link]) de HDFS et le stocker dans
un répertoire local (/home/data)
hdfs dfs -get /data_input/[Link]
/home/data
Ou bien
hdfs dfs -copyToLocal
/data_input/[Link] /home/data
Ines BEN MESSAOUD 93
COMMANDES HDFS : EXEMPLES
Supprimer le fichier « [Link] »
hdfs dfs -rm /data_input/[Link]
Ines BEN MESSAOUD 94
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 95
QU’EST CE QUE MAPREDUCE?
MapReduce est le modèle de programmation du
framework Hadoop
Il est utilisé pour accéder aux données Big
Data stockées au sein du Hadoop Distributed File
System (HDFS)
Il permet le traitement des données volumineuses de
manière parallèle et distribuée
Au lieu de parcourir le fichier de manière séquentielle
(beaucoup de temps), il est divisé en morceaux qui sont
parcourus en parallèle
Ines BEN MESSAOUD 96
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 97
COMMENT FONCTIONNE MAPREDUCE?
Le fonctionnement de MapReduce s’articule
principalement autour de deux fonctions :
Fonction Map
Fonction Reduce
Ines BEN MESSAOUD 98
COMMENT FONCTIONNE MAPREDUCE?
Ines BEN MESSAOUD 99
COMMENT FONCTIONNE MAPREDUCE?
Fonction Map :
Les données d’input sont décomposées en blocs
Chacun de ces blocs est assigné à un « mapper »
(une fonction) pour le traitement
La fonction Map reçoit l’input et génère un
ensemble de couples clé/valeur intermédiaires
NB : Hadoop se charge de décider
automatiquement combien de mappers à utiliser. Ce
choix dépend de la taille des données à traiter et
des blocs de mémoire disponibles sur chaque
serveur
Ines BEN MESSAOUD 100
COMMENT FONCTIONNE MAPREDUCE?
Fonction Reduce :
Lorsque tous les mappers terminent leurs tâches de
traitement, le framework mélange et organise les
résultats
Il transmet ces résultats aux « reducers »
La fonction Reduce reçoit les inputs sous forme de
paires clé/valeur
Toutes les valeurs produites par map ayant la même
clé sont assignées à un reducer unique. Celui-ci se
charge d’agréger les valeurs pour cette clé.
Reduce produit un ouput final sous forme de paire
clé/valeur
NB : Un reducer ne peut démarrer si un mapper
Ines BEN MESSAOUD 101 est
encore actif
COMMENT FONCTIONNE MAPREDUCE?
Mélange / Tri :
Sont deux étapes intermédiaires entre Map et
Reduce
Mélange : Sélection des paires à partir des
Mappers
Tri : Rangement des paires au niveau de chaque
Reducer
Ines BEN MESSAOUD 102
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 103
EXEMPLE EXPLICATIF
Objectif : Déterminer les mots les plus utilisés dans un
texte donné.
fly sky blue
bird bird fly
fly bird sky
=>>> Découper (split) les données d'entrée pour que
chacune des machines puisse travailler sur une partie du
texte (découper les données d'entrée ligne par ligne, par
exemple)
Ines BEN MESSAOUD 104
EXEMPLE EXPLICATIF
fly sky blue
fly sky blue
bird bird fly bird bird fly
fly bird sky
fly bird sky
Ines BEN MESSAOUD 105
Les données Fragmentation
en entrée (spliting)
EXEMPLE EXPLICATIF
On doit déterminer la clef à utiliser pour l’opération
MAP, et écrire le code de l'opération MAP
Pour notre opération MAP : on va simplement parcourir
le fragment qui nous est fourni et pour chacun des mots
générer le couple clef/valeur: (MOT ; 1)
Ines BEN MESSAOUD 106
EXEMPLE EXPLICATIF
(fly, 1)
fly sky blue (sky,1)
(blue,1)
fly sky blue (bird,1)
bird bird fly bird bird fly (bird,1)
fly bird sky (fly,1 )
(fly, 1)
fly bird sky (bird,1)
(sky, 1)
Ines BEN MESSAOUD 107
Les données Fragmentation
en entrée (spliting) Map
EXEMPLE EXPLICATIF
Hadoop groupe (shuffle) tous les couples par clef
commune
Cette opération est effectuée automatiquement par
Hadoop
Ines BEN MESSAOUD 108
EXEMPLE EXPLICATIF
(fly, 1)
(fly,1)
(fly,1)
(fly, 1)
fly sky blue (sky,1)
(blue,1)
(sky, 1)
(sky,1)
fly sky blue (bird,1)
bird bird fly bird bird fly (bird,1)
fly bird sky (fly,1 )
(blue, 1)
(fly, 1)
fly bird sky (bird,1)
(sky, 1) (bird, 1)
(bird,1)
(bird,1)
Ines BEN MESSAOUD 109
Les données Fragmentation Mélange / Tri
en entrée (spliting) Map (Shuffling)
EXEMPLE EXPLICATIF
REDUCE
est appelée pour chacun des groupes/clef distincte
consiste à additionner toutes les valeurs liées à la
clef spécifiée
Ines BEN MESSAOUD 110
EXEMPLE EXPLICATIF
(fly, 1)
(fly,1) (fly, 3)
(fly,1)
(fly, 1)
fly sky blue (sky,1)
(blue,1)
(sky, 1)
(sky, 2)
(sky,1) (fly, 3)
fly sky blue (bird,1) (sky,2)
bird bird fly bird bird fly (bird,1) (blue,1)
fly bird sky (fly,1 ) (bird, 3)
(blue, 1) (blue, 1)
(fly, 1)
fly bird sky (bird,1)
(sky, 1) (bird, 1)
(bird,1) (bird, 3)
(bird,1)
Ines BEN MESSAOUD 111
Les données Fragmentation Mélange / Tri
en entrée (spliting) Map (Shuffling) Reduce Résultat final
RÉSUMONS
Il y a 4 étapes distinctes dans un traitement MapReduce :
Découper (split) les données d'entrée en plusieurs
fragments
Mapper (map) chacun de ces fragments pour obtenir
des couples (clef ; valeur)
Grouper (shuffle) ces couples (clef ; valeur) par clef
Réduire (reduce) les groupes indexés par clef en une
forme finale, avec une valeur pour chacune des clefs
distinctes
Ines BEN MESSAOUD 112
RÉSUMONS
Pour résoudre un problème via MapReduce avec Hadoop,
il faut:
Choisir une manière de découper les données d'entrée
Définir la CLEF pour résoudre le problème
Ecrire le programme pour l'opération MAP
Ecrire le programme pour l'opération REDUCE
Ines BEN MESSAOUD 113
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 114
MAPREDUCE V1
Permettre au programmeur l’écriture
des applications MapReduce
MapReduce 1
API
Permettre
Framework l’exécution des
Jobs MapReduce,
etc.
Ressource management
Gérer les nœuds du cluster, allouer des
ressources et ordonnancer les jobs
Ines BEN MESSAOUD 115
MAPREDUCE V1
Deux démons :
JobTracker :
Communique avec le NameNode
pour déterminer l'emplacement
des blocs de données
Master Node
Divise le travail sur les Mappers
et Reducers s’exécutant sur les JT
différents nœuds
Gère les ressources (mémoire,
CPU, …)
Suit la progression des tâches
…
Ines BEN MESSAOUD 116
MAPREDUCE V1
TaskTracker :
S’exécute sur chacun des nœuds
pour exécuter les tâches de
MapReduce
Fournit régulièrement des Slave Node
informations sur l'état des tâches
TT
au JobTracker
Ines BEN MESSAOUD 117
MAPREDUCE V1
Comment ça fonctionne?
Une Application Map-Reduce est divisée sur plusieurs
tâches : Mappers et Reducers
Une tâche est exécutée sur un nœud du cluster
Chaque nœud a un certain nombre de slots prédéfinis :
Map Slots
Reduce Slots
Un slot est une unité d’exécution qui représente la
capacité du Task Tracker à exécuter une tâche (map ou
reduce)
Ines BEN MESSAOUD 118
MAPREDUCE V1
Client Hadoop
Master Node
JT NN
Slave Node 1 Slave Node 2 Slave Node 3 Slave Node 4 Slave Node 5
DN TT DN TT DN TT DN TT DN TT
Ines BEN MESSAOUD 119
MAPREDUCE V1
1. Le client (un outil Hadoop console) soumet le travail à
effectuer au JobTracker
2. Le JobTracker communique avec le NameNode
HDFS pour savoir où se trouvent les blocs
correspondant aux noms de fichiers donnés par le
client
3. Le JobTracker, à partir de ces informations, détermine
quels sont les TaskTracker les plus appropriés
4. Le JobTracker envoie aux TaskTracker sélectionnés
le travail à effectuer
Ines BEN MESSAOUD 120
MAPREDUCE V1
5. Le JobTracker communique avec les TaskTracker en
train d'exécuter les tâches
6. Lorsque toutes les opérations envoyées aux
TaskTracker (MAP + REDUCE) sont effectuées, le
JobTracker marque la tâche comme « effectuée »
NB :
Si une tâche échoue (erreur java, etc.), le TaskTracker
signale au JobTracker que la tâche n'a pas pu être
exécuté.
Le JobTracker décide la conduite à choisir
Ines BEN MESSAOUD 121
MAPREDUCE V1
Les problèmes possibles ?
Ines BEN MESSAOUD 122
MAPREDUCE V1
Le Job Tracker s’exécute sur
une seule machine, et fait
plusieurs tâches
Si le Job Tracker tombe en
panne, alors tous les jobs
doivent redémarrer
Le nombre de Map slots et de
Reduce slots est prédéfini
Ines BEN MESSAOUD 123
CHAPITRE 2 : HADOOP ET MAPREDUCE
1. Qu’est ce que Hadoop ?
2. Écosystème de Hadoop
3. Architecture de HDFS (Hadoop Distributed File System)
4. Commandes HDFS
5. Qu’est ce que MapReduce?
6. Comment fonctionne MapReduce?
7. Exemple explicatif
8. MapReduce V1
9. MapReduce V2
Ines BEN MESSAOUD 124
MAPREDUCE V2
MapReduce 2
MapReduce API
Framework
=>> MapReduce v2
sépare la gestion
des ressources de
YARN celle des tâches
MR
YARN API
Ressource management
Ines BEN MESSAOUD 125
MAPREDUCE V2
Resource Manager :
Tourne sur le nœud master
Ordonnanceur de ressources
global
Master Node
Permet l’arbitrage des ressources
entre plusieurs applications RM
Ines BEN MESSAOUD 126
MAPREDUCE V1
Node Manager :
S’exécute sur les nœuds esclaves
Communique avec Resource
Manager
Slave Node
NM
Ines BEN MESSAOUD 127
MAPREDUCE V2
Containers :
Créés par le Resource Manager à la demande
Sont l’ensemble de ressources physiques sur un
seul nœud, telles que la mémoire (RAM), les CPU et
les disques.
Application Master :
Il y a un seul par application
Demande plusieurs containers pour exécuter les
tâches de l’application
Ines BEN MESSAOUD 128
MAPREDUCE V2
1. Le client soumet le travail à effectuer à la machine master (Resource
Manager)
2. Le Resource Manager déclenche une Application Master sur l’un des
nœuds esclaves (selon la disponibilité)
3. L’Application Master demande aux Resource Manager d’allouer les
ressources nécessaires pour exécuter l’application
4. Le Resource Manager détermine le nombre le Containers
nécessaires pour réaliser l’application (3 Containers par exemple)
5. Selon le nombre de Containers nécessaires, le Resource Manager
choisit des nœuds esclaves (dont lesquels il lance les Containers)
6. Le Resource Manager alloue les Containers et envoie à l’Application
Master les identifiants des Containers
7. L’Application Master gère l’exécution de l’application et des
Containers
Ines BEN MESSAOUD 129