Faculté Polydisciplinaire - Safi Filières : IIA & SD / Semestre : 6
Module : Big Data et NoSQL
TD1 : Programmation et analyse d’applications
MapReduce
Ce TD a pour objectif de consolider la compréhension du paradigme MapReduce à travers une
série d’exercices appliqués au traitement distribué de données.
Exercice 1 – Calcul de la note moyenne par étudiant
Objectif : Calculer la note moyenne de chaque étudiant à partir d'un ensemble de notes.
Travail demandé : Décrire un traitement MapReduce permettant de regrouper les notes par
étudiant puis de calculer la moyenne correspondante.
Logique attendue :
• Mapper : émettre (étudiant, note) pour chaque ligne d'entrée ;
• Reducer : calculer la moyenne des notes pour chaque étudiant, puis
émettre (étudiant, moyenne).
Exemple d'entrée :
E01,Math,14
E01,Algo,16
E02,Math,12
Résultat attendu :
E01 15
E02 12
Exercice 2 – Calcul du total des heures travaillées par employé
Objectif : Calculer le total des heures travaillées par chaque employé.
Travail demandé : Décrire un traitement MapReduce permettant de sommer, pour chaque
employé, les heures enregistrées.
Logique attendue :
• Mapper : émettre (employé, heures) pour chaque enregistrement ;
• Reducer : sommer les heures pour chaque employé, puis
émettre (employé, total).
Exemple d'entrée :
2025-01-01,EMP01,8
2025-01-02,EMP01,7
2025-01-01,EMP02,6
1/2
Résultat attendu :
EMP01 15
EMP02 6
Exercice 3 – Calcul du temps moyen de connexion par utilisateur
Objectif : Calculer le temps moyen de connexion de chaque utilisateur.
Travail demandé : Décrire un traitement MapReduce permettant de regrouper les durées par
utilisateur puis d'en calculer la moyenne.
Logique attendue :
• Mapper : émettre (utilisateur, durée) pour chaque ligne ;
• Reducer : calculer la moyenne des durées pour chaque utilisateur, puis
émettre (utilisateur, durée_moyenne).
Exemple d'entrée :
U01,30
U01,45
U02,20
Résultat attendu :
U01 37.5
U02 20
Exercice 4 – Comptage des noms selon leur initiale
Objectif : Compter le nombre de noms commençant par chaque lettre de l'alphabet.
Travail demandé : Décrire un traitement MapReduce permettant d'extraire l'initiale de chaque
nom puis de compter les occurrences associées.
Logique attendue :
• Mapper : extraire la première lettre de chaque nom et émettre (initiale, 1) ;
• Reducer : sommer les occurrences pour chaque initiale, puis
émettre (initiale, total).
Exemple d'entrée :
Ali
Amine
Sara
Samir
Résultat attendu :
A 2
S 2
2/2