0% ont trouvé ce document utile (0 vote)
5 vues80 pages

Introduction à Hadoop et MapReduce

Hadoop est un framework open source pour le stockage et le traitement de grandes quantités de données, utilisant un système de fichiers distribué (HDFS) et un modèle de traitement parallèle (MapReduce). L'écosystème Hadoop comprend divers outils comme Apache Pig, Hive, et Oozie, qui facilitent l'extraction, le stockage, et le traitement des données. HDFS divise les fichiers en blocs, les stocke sur plusieurs nœuds, et assure la redondance des données pour éviter la perte en cas de défaillance.

Transféré par

moussamahmoudba1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues80 pages

Introduction à Hadoop et MapReduce

Hadoop est un framework open source pour le stockage et le traitement de grandes quantités de données, utilisant un système de fichiers distribué (HDFS) et un modèle de traitement parallèle (MapReduce). L'écosystème Hadoop comprend divers outils comme Apache Pig, Hive, et Oozie, qui facilitent l'extraction, le stockage, et le traitement des données. HDFS divise les fichiers en blocs, les stocke sur plusieurs nœuds, et assure la redondance des données pour éviter la perte en cas de défaillance.

Transféré par

moussamahmoudba1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi