Solution exercice Big data, Exams of Data Warehousing

Solution exercice examen 2025 Big data

Typology: Exams

2024/2025

Uploaded on 05/09/2026

abderrahmane-ben
abderrahmane-ben 🇩🇿

1 document

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
BI et Big Data _ Corrigé Epreuve final
Exercice 2: Big Data
Considérons un dossier HDFS nommé inputData qui
contient les fichiers suivants : Temperature1.txt,
Temperature2.txt et Temperature3.txt de tailles
1036MB, 513MB et 500MB respectivement.
Soit le programme MapReduce suivant exécuté sur les fichiers ci-dessus.
class MapperBigData extends Mapper<LongWritable, Text, Text, DoubleWritable> {
protected void map(LongWritable key, Text value, Context context) throws IOException,
InterruptedException {
String fields[] = value.toString().split(",");
String date = fields[0];
Double temperature = Double.parseDouble(fields[2]);
context.write(new Text(date), new DoubleWritable(temperature));
}
}
class ReducerBigData extends Reducer<Text, DoubleWritable, Text, DoubleWritable> {
@Override
protected void reduce(Text key, // Input key type
Iterable<DoubleWritable> values, // Input value type
Context context) throws IOException, InterruptedException {
double maxTemp = Double.MIN_VALUE;
for (DoubleWritable temperature : values) {
if (temperature.get() > maxTemp) {
maxTemp = temperature.get();
}
}
context.write(key, new DoubleWritable(maxTemp));
}
}
1. Quel est l’objectif du ce programme MapReduce?
Le programme MapReduce détermine la température maximale dans le jour
Mapper : lit chaque ligne, extrait la date et la température, puis émet (date, température).
Reducer : pour chaque date, calcule la température maximale parmi les valeurs reçues,
puis émet (date, température_max).
2. Donner le couple (clef, valeur) à identifier par ce programme MapReduce
a. (date, température).
3. Décrire le traitement du programme MapReduce sur le fichier d’entrée.
1. Split(Découper): Qui découpe les données d’entrée en des fragments. 1pts
a. 2016/01/01,00:00:00,0.0
b. 2016/01/01,00:00:05,-1
pf3

Partial preview of the text

Download Solution exercice Big data and more Exams Data Warehousing in PDF only on Docsity!

Exercice 2 : Big Data Considérons un dossier HDFS nommé inputData qui contient les fichiers suivants : Temperature1.txt, Temperature2.txt et Temperature3.txt de tailles 1036MB, 513MB et 500MB respectivement. Soit le programme MapReduce suivant exécuté sur les fichiers ci-dessus. class MapperBigData extends Mapper { protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String fields[] = value.toString().split(","); String date = fields[0]; Double temperature = Double.parseDouble(fields[2]); context.write(new Text(date), new DoubleWritable(temperature)); } } class ReducerBigData extends Reducer { @Override protected void reduce(Text key, // Input key type Iterable values, // Input value type Context context) throws IOException, InterruptedException { double maxTemp = Double.MIN_VALUE; for (DoubleWritable temperature : values) { if (temperature.get() > maxTemp) { maxTemp = temperature.get(); } } context.write(key, new DoubleWritable(maxTemp)); } }

  1. Quel est l’objectif du ce programme MapReduce? Le programme MapReduce détermine la température maximale dans le jour  Mapper : lit chaque ligne, extrait la date et la température, puis émet (date, température).  Reducer : pour chaque date, calcule la température maximale parmi les valeurs reçues, puis émet (date, température_max).
  2. Donner le couple (clef, valeur) à identifier par ce programme MapReduce a. (date, température).
  3. Décrire le traitement du programme MapReduce sur le fichier d’entrée.
    1. Split (Découper) : Qui découpe les données d’entrée en des fragments. 1pts a. 2016/01/01,00:00:00,0. b. 2016/01/01,00:00:05,-

c. 2016/01/01,00:00:10,-1. d. 2016/01/01,00:00:15,-1. e. 2016/01/01,00:00:20,-1. f. 2016/01/01,00:00:25,-0. g. 2016/01/01,00:00:30,-0. h. 2016/01/01,00:00:35,1. i. 2016/01/01,00:00:40,1.

  1. Map : Obtenir les couples (clef, valeur) pour chaque fragment découpé. 2pts a. ("2016/01/01", 0.0) b. ("2016/01/01", -1.0) c. ("2016/01/01", -1.2) d. ("2016/01/01", -1.5) e. ("2016/01/01", -1.0) f. ("2016/01/01", -0.5) g. ("2016/01/01", -0.5) h. ("2016/01/01", 1.0) i. ("2016/01/01", 1.5) __ Entrée du shuffle
  2. Shuffle (Grouper) : Groupe les couples (clef, valeur) par clef. 1pts a. ("2016/01/01", [0.0, -1.0, -1.2, -1.5, -1.0, -0.5, -0.5, 1.0, 1.5]) __ Entrée du reduce
  3. Reduce (Réduire) : Indexer les groupes par clefs avec une valeur pour chaque clé distinct. a. ("2016/01/01", 1.5) __ Résultat final 1pts
  4. Quelles sont les étapes nécessaires pour la mise en œuvre d’un job Hadoop MapReduce?  Développer le code MapReduce  Écrire la classe Mapper : extraire les données d’entrée, générer des paires clé- valeur intermédiaires.  Écrire la classe Reducer : regrouper et traiter les paires clé-valeur générées par le Mapper.  Écrire la classe principale qui configure le job (fichiers d’entrée/sortie, classes Mapper/Reducer, formats, etc.).  Compiler et empaqueter  Compiler le code source (Java, Scala, etc.).  Créer un fichier JAR contenant toutes les classes nécessaires.  Exécuter le job MapReduce  Lancer le job avec la commande hadoop jar .