0% ont trouvé ce document utile (0 vote)
242 vues2 pages

TP2 Map Reduce

Ce document décrit trois exercices à réaliser avec MapReduce: 1) compter les mots dans un texte, 2) calculer le total des ventes par magasin, 3) obtenir des statistiques sur les ventes par catégorie de produits et par magasin.

Transféré par

Takwa Dridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
242 vues2 pages

TP2 Map Reduce

Ce document décrit trois exercices à réaliser avec MapReduce: 1) compter les mots dans un texte, 2) calculer le total des ventes par magasin, 3) obtenir des statistiques sur les ventes par catégorie de produits et par magasin.

Transféré par

Takwa Dridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP2 Map Reduce

Partie I : Word counter


On se propose dans ce qui suit, de tester la solution MapReduce du problème de calcul du nombre
d'occurrences de mots dans un texte donne connue sous le nom de word counter. Pour ceci, il est
demande de :
1. Créer un fichier mapper.py et y écrire le code du mapper.
2. Executer mapper : chmod +x mapper.py
3. Tester le code propose en local sur les 15 premieres lignes du fichier drac.txt en tapant
l'instruction suivante : tail drac.txt | mapper.py
4. Creer le fichier reduce.py et y ecrire le code du reducer.
5. Executer reducer: chmod +x reducer.py
6. Tester le code propose en local sur les 15 premieres lignes du fichier drac.txt en tapant
l'instruction suivante : tail drac.txt | mapper.py | sort | reducer.py

Exercices to do
Partie II : Total de ventes
Comme son nom l'indique, le fichier purchases.txt comporte un ensemble de lignes decrivant les
ventes d'un ensemble de magasins. Chaque ligne est composee de 5 champs separes par des tabulations
sous la forme suivante :
date time store item cost

On se propose dans ce qui suit, de calculer le total des ventes par magasin.

1. Determiner le couple (cle, valeur) a extraire dans ce cas.


2. Creez un fichier map.py et y ecrire le code du mapper. Tester le code propose en local.
3. Creer un fichier reduce.py et y ecrire le code du reducer. Tester ce code en local.
4. Lancer le job MapReduce et verifier le resultat. Executer :
- cat purchases.txt | map.py
- cat purchases.txt | map.py | sort |redvente.py

Partie III : Statistiques des ventes

Dans cette partie, vous allez travailler sur le fichier purchases.txt qui vous a ete deja fourni.
Les differents champs de ce fichier sont de la forme suivante :
date temps magasin produit cout
Ecrire les mappers et reducers permettant de :
1. Donner le total des ventes par categorie de produits.

2. Donner le montant de la vente le plus eleve pour chaque magasin.

3. Quel est le nombre total des ventes et la valeur totale des ventes de tous magasins confondus?

Verifier tous les resultats obtenus en vous referant au fichier de donnees utilise.
Exercice 1 : Graphe social
On dispose de la base de données d'un réseau social contenant plusieurs millions d'utilisateurs. Pour
chacun d'entre eux, on a une liste d'autres utilisateurs : les amis de l'utilisateur courant sur le réseau. On
cherche à générer, pour chaque couple d'utilisateurs distincts, la liste des amis qu'ils ont en
commun.
On ne peut pas effectuer cette opération par le biais d'une requête sur la base de données relationnelle
sans un impact immense sur le serveur du réseau social, potentiellement bloquant pour la base, et donc
pour le site lui-même.
Par conséquent, on voudrait créer une tâche map/reduce pour régler ce problème, et l'exécuter à
intervalles réguliers.
Nos données d'entrée sous la forme Utilisateur => Amis comme suit :
A => B, C, D
B => A, C, D, E
C => A, B, D, E
D => A, B, C, E
E => B, C, D
1. Donnez le couple clé-valeur adapté au traitement en question.
2. Expliquer les étapes qui seront réalisées par le mapper
3. Donnez le pseudo-code du mapper
4. Expliquer les étapes qui seront réalisées par le reducer
5. Donnez le pseudo-code du reducer

Vous aimerez peut-être aussi