Académique Documents
Professionnel Documents
Culture Documents
TD MapReduce
Exercice 1
Que fait ce programme MapReduce?
Exercice 2
Que fait ce programme MapReduce?
Exercice 3
Une grande chaine de distribution récupère auprès de ses magasins des fichiers log contenant les informations
relatives aux ventes. Le fichier log est composé de différents champs sous la forme suivante:
date | temps | magasin | produit | cout | paiement
Exercice 4
Une entreprise souhaite réaliser des statistiques sur son personnel. Le fichier contient les informations relatives
à chaque salarié (identifiant, age, sexe, adresse, statut, nbrenfants...). Écrire en pseudo-code les tâches Map et
Reduce qui permettent de déterminer:
• Pour chaque age, le salaire minimum, maximum et le nombre de personnes de cet age.
1
Exercice 5
Depuis l’apparition de la pandémie du Coronavirus, l’Institut Pasteur d’Algérie garde trace de tous les échantillons
reçus des différentes wilayas, dans le but d’étudier la propagation du virus. Une ligne de données est formatée
de la manière suivante:
id_echantillon, date_prise, wilaya, sexe_malade, age_malade, resultat
Ci-dessous un exemple d’un échantillon prit le 25/06/2020 dans la wilaya d’Oran d’un homme âgé de 35 ans.
Le résultat est négatif.
1652, 25/06/2020, Oran, H, 35, N
3. Dérouler sur l’exemple suivant le résultat des différentes étapes: Map, Shuffle et Reduce de votre pro-
gramme.
1652, 25/06/2020, Oran, H, 35, N
1653, 25/06/2020, Alger, F, 85, P
1654, 26/06/2020, Annaba, F, 25, P
1655, 27/06/2020, Oran, H, 64, N
1656, 29/06/2020, Mostaganem, F, 74, P
1656, 29/06/2020, Alger, H, 58, P
Exercice 6
Le super marché ARVIS souhaite effectuer des statistiques sur l’ensemble des achats de ses clients sur les douze
derniers mois. L’entreprise possède plusieurs super-marchés en Algérie. A chaque passage de client à la caisse,
une ligne de log est sauvegardée dans un fichier. Cette ligne de log est formatée de la manière suivante :
Ceci indique que le caissier 132227 a encaissé un panier comportant les produits ”pain”, ”lait” et ”chocolat” le
02/11/2019 à 12h 32min 10sec.
Questions
• Écrire en pseudo-code le programme MapReduce permettant de calculer par tranche horaire d’une demi-
heure (toutes journées confondues) le nombre total de produits achetés dans la tranche. Le résultat
attendu est comme suit:
Sur les douze derniers mois, il y a eu:
54000 produits vendus dans la tranche horaire de 9h à 9h29
87548 produits vendus dans la tranche horaire de 9h30 à 9h59
...
• Écrire en pseudo-code le programme MapReduce permettant de calculer par tranche horaire d’une demi-
heure (toutes journées confondues) le produit le plus acheté dans la tranche.
• Dérouler sur l’exemple suivant le résultat des différentes étapes: Map, Shuffle et Reduce pour les deux
programmes.
02_11_2019 12_32_10 132227 pain+lait+chocolat
02_11_2019 12_45_25 132234 huile+sel+pain+yaourt+lait
03_11_2019 12_15_15 132154 fromage+lait+eau
03_11_2019 12_58_10 132227 lait+café+chips+salade
03_11_2019 15_12_10 132227 couscous+farine+levure
Indication: Il est autorisé d’utiliser dans votre pseudo-code des fonctions pré-définies comme par exemple:
extraire jour(date), extraire heure(horaire)... à condition qu’elles soient compréhensibles à partir de leur nom.
Exercice 7
Soit le fichier Twitter contenant un jeu de données représentant le graphe (orienté) des relations de suivi entre
plusieurs milliers d’utilisateurs de Twitter. Chaque ligne du fichier représente un utilisateur et son follower.
• Écrire en pseudo-code le programme MapReduce permettant de retourner les utilisateurs qui à la fois
”suivent” et ”sont suivis”.
• Dérouler sur l’exemple suivant le résultat des différentes étapes: Map, Shuffle et Reduce.
Exemple: Supposons le fichier d’entrée Twitter contenant:
A B
A C
B C
C D
Exercice 8
Soient les deux relations suivantes: R(A,B) et S(X,Y). Écrire en pseudo-code les opérations Map et Reduce
implémentant les requêtes suivantes:
• SELECT * FROM R WHERE A < 1;
• SELECT DISTINCT A , B FROM R;
Exercice 10
Le PageRank est un algorithme utilisé par les moteurs de recherche pour la pondération et le classement des
pages web. Il utilise pour ses calculs la multiplication d’une matrice par un vecteur. Cette opération doit être
adaptée à l’environnement Big Data.
Rappel: Soit une matrice A de taille m × n et un vecteur V de taille n, le produit A × V est calculé comme
suit:
v1
a11 a12 · · · a1n v2
a21 a22 · · · a2n V = .
A= .
..
.. .. ..
.. . . . vn
am1 am2 · · · amn
a11 × v1 + a12 × v2 + · · · + a1n × vn
a21 × v1 + a22 × v2 + · · · + a2n × vn
A×V =
..
.
am1 × v1 + am2 × v2 + · · · + amn × vn
Nous supposons que le vecteur V est présent sur tous les noeuds (il n’est pas nécessaire de partitionner V ).
Écrire en pseudo-code les tâches Map et Reduce permettant la multiplication d’une matrice par un vecteur
en suivant les étapes ci-dessous:
1. Les matrices sont souvent creuses (beaucoup de 0) dans ce type de problème. Comment doit-on représenter
les données en entrées (Matrice A) pour optimiser le traitement?
2. Déterminer la clé et définir l’opération Map générant le couple (clé,valeur).
3. Définir l’opération Reduce.
Indication: Les indices des lignes et des colonnes vont vous êtes utiles.
Exercice 11
Soit le fichier Compétition Boxe contenant les résultats des différents combats d’une compétition de boxe.
Chaque ligne représente: (1) un boxeur (premier élément de la ligne) et (2) la liste des boxeurs qu’il a battu
(les autres éléments de la ligne). Par exemple, la ligne A,C,D exprime que le le boxeur A a battu les boxeurs
C et D.
• Écrire en pseudo-code le programme MapReduce permettant de retourner les boxeurs qui n’ont jamais
été battus.
• Dérouler sur l’exemple suivant le résultat des différentes étapes: Map, Shuffle et Reduce.
A,C,D
B,A,C
C,A,D
D,C
Exercice 12
Nous souhaitons étudier les variations de température dans une maison. Pour cela, chaque pièce est munie d’un
ou plusieurs capteurs pour mesurer la température. Ces capteurs retournent à des intervalles réguliers (toutes
les 5 minutes) la température de la pièce. Les informations retournées sont structurées comme suit:
id capteur|piece|horodatage|temperature