Académique Documents
Professionnel Documents
Culture Documents
LSI– 2022/2023
Faculté des Sciences et Techniques de Tanger
Département Génie Informatique
LSI– 2022/2023
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
version1
3
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Démons de Map Réduce version1
4
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Démons de Map Réduce version1
5
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Démons de Map Réduce version1
JobTracker
Divise le travail sur les Mappers et Reducers, s’exécutant sur
les différents nœuds
Se charge à la fois d’allouer les ressources (mémoire, CPU…)
aux différentes tâches et de coordonner l’exécution des jobs
Map-Reduce
TaskTracker
S’exécute sur chacun des nœuds pour exécuter les vraies
tâches de MapReduce
Choisit en général de traiter (Map ou Reduce) d’un bloc sur la
même machine que lui.
6
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Architecture générale de Map Réduce version1
7
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Problèmes?
8
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Solution:
9
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Version 2 : YARN
10
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Solution:
11
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
SPLITS
• Les fichiers dans MapReduce sont sauvés en Blocs (64 /128 MB)
12
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
• Il existe 3 principals classes de lecture de données dans MapReduce:
13
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
• Il existe 3 principals classes de lecture de données dans MapReduce:
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
1. InputFormat,
• Effectue un split logique des fichiers d'entrée pour le Job.
• Chaque InputSplit est ensuite assigné à un Mappeur individuel pour traitement.
• Créer un record reader pour un split de donnée,
• transforme le records en <key, value>.
15
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
2.InputSplitter,
16
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
3. RecordReader,
• Lit les Splits en format de Records
(LineRecordReader)
• Appelé une fois à l'initialisation,
• Lit la clé suivante, paire de valeurs,
• Obtenir la clé actuelle
• Obtenir la valeur actuelle
• Progression du record reader vers le
nouveau record,
17
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
• Généralement, un Split ne se produit pas à la fin d'un bloc,
• Les fichiers sont lus dans les enregistrements par la classe RecordReader
• Normalement, le RecordReader démarre et s'arrête aux points de partage.
Node 1 Node 2
Tiger\n ther\n
Tiger\n Tiger\n
Lion\n Wolf\n
Pan Lion
18
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Classes (SPLITS)
• les Map Tasks lisent les fichiers en définissant une classe InputFormat
• Pour lire les fichiers texte délimités par des lignes, Hadoop fournit la classe
TextInputFormat:
• Il renvoie une clé, paire de valeurs par ligne dans le texte
• La valeur est le contenu de la ligne
• La clé est le décalage du caractère de nouvelle ligne,
Node 1 Node 1
Tiger <0, Tiger>
Lion <6, Lion>
Lion <11, Lion>
Panther <16, Panther>
Wolf <24, Wolf>
… …
19
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exécution
2. get new job ID
MapReduce 1. run job 5. initialize job
JobClient JobTracker
program
4. submit job
client JVM
jobtracker node
client node
7. heartbeat
6. retrieve
3. copy job (returns task)
input splits
resources
Distributed TaskTracker
8. retrieve
file system
job resources 9. launch
(e.g. HDFS)
child JVM
Child
• Client: Soumet les travaux (Jobs) MapReduce,
• JobTracker: Coordonne l’éxecution du Job, 10. run
décompose le job en map and reduce tasks pour MapTask
chaque noeud pour travailler sur le cluster. or
ReduceTask
• TaskTracker: Execute les fonctions de map et
reduce. tasktracker node
20
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Ordonnancement (Scheduling):
Chaque travail utilise le cluster entier, les jobs attendent donc leur tour.
Peut définir des priorités pour les travaux dans la file d'attente (5 files
d'attente avec des priorités)
J3
J6 J2
J7 J5 J4 J1
21
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Tolérance aux fautes:
22
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Tolérance aux fautes:
JobTracker node
heartbeat
child JVM
Child
1 Task fails
MapTask
or
ReduceTask
TaskTracker node
23
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Combiner:
Pour des raisons de performance, un agrégat local dans la Map Task peut être utile
Réduit la quantité de données à copier sur le réseau
Réduit également l'effort de fusion Après la tâche de mappage et avant le shuffle,
Node 1 Node 1
<Tiger, 1> <Tiger, 1>
<Lion, 1> <Lion, 2>
<Lion, 1> <Panther, 1>
<Panther, 1> …
…
Node 2 Node 2
<Tiger, 1> <Tiger, 2>
<Tiger,1> <Panther, 1>
<Panther, 1> …
…
24
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE
25
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Fonctionnement:
26
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Fonctionnement:
27
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Fonctionnement:
28
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
Fichiers d’entrée textuels,
On veut connaître le nombre d’occurrences de chacun des
mots dans ces fichiers
Fichier d’entrée :
29
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
30
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
Mappers
31
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
32
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
33
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
Reducer (Reducing) du programme WordCount :
Reducers
34
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
Opération Reduce :
• Sommation des valeurs de toutes les paires de clé commune
• Ecriture dans un (ou des) fichier(s) résultats
• Le fichier en sortie de reducer sera donc le suivant :
35
CH2 Architectures Big Data usuelles
ARCHITECTURE
MAP / REDUCE :
Exemple: Comptage de mots
36
Faculté des Sciences et Techniques de Tanger
Département Génie Informatique
LSI– 2020/2021
CH2 Architectures Big Data usuelles
MAP / REDUCE :
38
CH2 Architectures Big Data usuelles
• Map Reduce fonctionne exclusivement avec les paires <key, value>, c'est-à-
dire que le framework visualise l'entrée du job comme un ensemble de paires
<clé, valeur> et produit un ensemble de paires <clé, valeur> comme sortie du
travail, différents types.
39
CH2 Architectures Big Data usuelles
40
CH2 Architectures Big Data usuelles
41
CH2 Architectures Big Data usuelles
42
CH2 Architectures Big Data usuelles
File System/usr/lib/hadoop/client
43
CH2 Architectures Big Data usuelles
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class WordCount {
//////
}
44
CH2 Architectures Big Data usuelles
47
CH2 Architectures Big Data usuelles
48
CH2 Architectures Big Data usuelles
49
CH2 Architectures Big Data usuelles
50
CH2 Architectures Big Data usuelles
51
CH2 Architectures Big Data usuelles
52
CH2 Architectures Big Data usuelles
53
CH2 Architectures Big Data usuelles
54
CH2 Architectures Big Data usuelles
55
CH2 Architectures Big Data usuelles
56
CH2 Architectures Big Data usuelles
57
CH2 Architectures Big Data usuelles
58
CH2 Architectures Big Data usuelles
Référence :
https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-
mapreduce-client-core/MapReduceTutorial.html
59