TP3 Map Reduce
TP3 Map Reduce
TP3 Map Reduce
du Big Data
TP 3
Le modèle de programmation Map Reduce
TP du modèle de programmation
MapReduce
L'étape de Reducing : qui permet de faire la somme des 1 pour chaque mot,
pour trouver le nombre total d'occurrences de ce mot dans le texte.
WordCount
Illustration avec un exemple
Bear: 2
Deer Bear River Exécution du job MapReduce
Car: 3
Car Car River
Deer: 2
Deer Car Bear
River: 2
Résultat
Fichier words.txt (input)
WordCount
Etape 0 : Placer le fichier sous HDFS
Block 1
Data Node 1
Deer Bear River
Car Car River
Deer Bear River
Data Node 2
Deer Car Bear Block 2
Deer: 1
Etape 1: Le mapping Bear: 1
River:1
Data Node 1
Block 1 Car: 1
Task Tracker 1 Car: 1
Deer Bear River River: 1
Exécution de la
Car Car River
fonction Map
Data Node 2
Block 2 Deer: 1
Car: 1
Task Tracker 2
Bear: 1
Deer Car Bear
WordCount
Etape 2.1 : Le shuffle (étape implicite dans MapReduce)
LIST(KEY: VALUE)
Deer: 1 Data Node 1
Bear: 1 Deer: 1
River:1 Bear: 1 Task Tracker 1
Output 1
Car: 1 Exécution de la River:1
Car: 1 fonction shuffle Car: 1
River: 1 Car: 1
River: 1
Deer: 1
Deer: 1 Car: 1
Output 2 Car: 1 Bear: 1
Bear: 1
WordCount
Etape 2.2 : Le sort (étape implicite dans MapReduce)
KEY: LIST(VALUE)
1. hadoop-common
2. hadoop-mapreduce-client-common
3. hadoop-mapreduce-client-core
4. hadoop-hdfs
Implémentation
<dependencies>
Pour ajouter une bibliothèque java, il faut juste
<dependency>
<groupId>org.apache.hadoop</groupId> chercher son nom de le repository de maven.
<artifactId>hadoop-common</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId> Choisissez la version.
<version>3.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Implémentation
1- Créer la classe AppMapper, contenant ce code :
Implémentation
2- Créer la classe AppReducer, contenant ce code :
Implémentation
3- Créer la classe Main, contenant ce code :
Implémentation
3- Créer la classe Main, contenant ce code : (suite)
Tester Map Reduce sur
votre cluster
1- Créer le fichier JAR de votre projet
Tester Map Reduce sur
votre cluster
2- Préparer les fichiers à traiter
https://github.com/BigDataESEN
/HadoopWordCount
Références
https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-
mapreduce-client-core/MapReduceTutorial.html
https://kontext.tech/column/hadoop/265/default-ports-used-by-hadoop-
services-hdfs-mapreduce-yarn
Merci pour votre
attention