• Aucun résultat trouvé

TD MapReduce. Dérouler sur l exemple suivant les résultats des différentes étapes du programme ci-dessus.

N/A
N/A
Protected

Academic year: 2022

Partager "TD MapReduce. Dérouler sur l exemple suivant les résultats des différentes étapes du programme ci-dessus."

Copied!
5
0
0

Texte intégral

(1)

Facult´e des Math´ematiques et Informatique D´epartement d’Informatique

Master II Big Data et Syst`emes Multi-´echelles Ann´ee 2021-2022

TD MapReduce

Exercice 1

Que fait ce programme MapReduce?

Op´eration Map: Entr´ee: document d Pour chaque mot dans d faire:

Retourner (taille(mot), 1)

Op´eration Reduce: Entr´ee: (cl´e, [val1,....]) int x = 0;

Pour chaque val dans [val1,....] faire:

x++;

retourner (cl´e, x);

D´erouler sur l’exemple suivant les r´esultats des diff´erentes ´etapes du programme ci-dessus.

Le savoir, c’est le pouvoir.

Savoir pour pr´evoir, afin de pouvoir.

Exercice 2

Que fait ce programme MapReduce?

Op´eration Map: Entr´ee: document d Pour chaque mot dans d faire:

Retourner (tri(mot), mot)

Op´eration Reduce: Entr´ee: (cl´e, [val1,....]) int x = 0;

Pour chaque val dans [val1,....] faire:

x++;

Si x>10 retourner (cl´e, x);

Exercice 3

Une grande chaine de distribution r´ecup`ere aupr`es de ses magasins des fichiers log contenant les informations relatives aux ventes. Le fichier log est compos´e de diff´erents champs sous la forme suivante:

date|temps|magasin |produit|cout |paiement Ecrire en pseudo-code les tˆ´ aches Map et Reduce qui permettent de d´eterminer:

• Le total de ventes par magasin.

• Le montant de la vente la plus ´elev´e pour chaque magasin.

• Le nombre total des ventes et la valeur totale des ventes de tous magasins confondus.

Exercice 4

Une entreprise souhaite r´ealiser des statistiques sur son personnel. Le fichier contient les informations relatives

`

a chaque salari´e (identifiant, age, sexe, adresse, statut, nbrenfants...). ´Ecrire en pseudo-code les tˆaches Map et Reduce qui permettent de d´eterminer:

• Pour chaque age, le salaire minimum, maximum et le nombre de personnes de cet age.

1

(2)

Exercice 5

Depuis l’apparition de la pand´emie du Coronavirus, l’Institut Pasteur d’Alg´erie garde trace de tous les ´echantillons re¸cus des diff´erentes wilayas, dans le but d’´etudier la propagation du virus. Une ligne de donn´ees est format´ee de la mani`ere suivante:

id_echantillon, date_prise, wilaya, sexe_malade, age_malade, resultat

Ci-dessous un exemple d’un ´echantillon prit le 25/06/2020 dans la wilaya d’Oran d’un homme ˆag´e de 35 ans.

Le r´esultat est n´egatif.

1652, 25/06/2020, Oran, H, 35, N

1. Que fait ce programme MapReduce?

Op´eration Map: Entr´ee: document d Pour chaque Ligne L dans d faire:

Retourner (L[3], 1)

Op´eration Reduce: Entr´ee: (cl´e, [val1,....]) int x = 0;

Pour chaque val dans [val1,....] faire:

x++;

retourner (cl´e, x);

2. ´Ecrire en pseudo-code le programme MapReduce permettant de calculer le nombre de personnes test´ees positives/n´egatives par sexe.

Le r´esultat attendu est comme suit:

Sur tous les ´echantillons analys´es, il y a eu:

345 femmes test´ees positivement et 546 test´ees n´egativement.

548 hommes test´es positivement et 576 test´es n´egativement.

3. D´erouler sur l’exemple suivant le r´esultat des diff´erentes ´etapes: 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´e ARVIS souhaite effectuer des statistiques sur l’ensemble des achats de ses clients sur les douze derniers mois. L’entreprise poss`ede plusieurs super-march´es en Alg´erie. A chaque passage de client `a la caisse, une ligne de log est sauvegard´ee dans un fichier. Cette ligne de log est format´ee de la mani`ere suivante :

• Le premier mot indique la date de l’achat au formatJ J M M AAAA

• Le deuxi`eme mot indique l’heure de l’achat au formatHH M M SS

• Le troisi`eme mot indique l’identifiant du caissier qui a prit en charge le client.

• Le reste de la ligne contient les achats. Chaque produit du panier est s´epar´e par le caract`ere +.

(3)

• Ecrire en pseudo-code le programme MapReduce permettant de calculer par tranche horaire d’une demi-´ heure (toutes journ´ees confondues) le nombre total de produits achet´es dans la tranche. Le r´esultat attendu est comme suit:

Sur les douze derniers mois, il y a eu:

54000 produits vendus dans la tranche horaire de 9h `a 9h29 87548 produits vendus dans la tranche horaire de 9h30 `a 9h59 ...

• Ecrire en pseudo-code le programme MapReduce permettant de calculer par tranche horaire d’une demi-´ heure (toutes journ´ees confondues) le produit le plus achet´e dans la tranche.

• D´erouler sur l’exemple suivant le r´esultat des diff´erentes ´etapes: 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´e+chips+salade 03_11_2019 15_12_10 132227 couscous+farine+levure

Indication: Il est autoris´e d’utiliser dans votre pseudo-code des fonctions pr´e-d´efinies comme par exemple:

extraire jour(date), extraire heure(horaire)... `a condition qu’elles soient compr´ehensibles `a partir de leur nom.

Exercice 7

Soit le fichierTwitter contenant un jeu de donn´ees repr´esentant le graphe (orient´e) des relations de suivi entre plusieurs milliers d’utilisateurs de Twitter. Chaque ligne du fichier repr´esente un utilisateur et son follower.

• Ecrire en pseudo-code le programme MapReduce permettant de retourner les utilisateurs qui `´ a la fois

”suivent” et ”sont suivis”.

• D´erouler sur l’exemple suivant le r´esultat des diff´erentes ´etapes: Map, Shuffle et Reduce.

Exemple: Supposons le fichier d’entr´ee Twitter contenant:

A B A C B C C D

Exercice 8

Soient les deux relations suivantes: R(A,B) et S(X,Y). ´Ecrire en pseudo-code les op´erations Map et Reduce impl´ementant les requˆetes suivantes:

• SELECT * FROM R WHERE A<1;

• SELECT DISTINCT A , B FROM R;

• (SELECT * FROM R) INTERSECT ( SELECT X as A , Y as B FROM S);

• (SELECT * FROM R) UNION ( SELECT X as A , Y as B FROM S);

• SELECT A , count(*) FROM R GROUP BY A;

• SELECT R.A , R.B , S.Y FROM R INNER JOIN S on R.A = S.X;

(4)

Exercice 9

Le termek-merd´esigne g´en´eralement toutes les sous-chaˆınes possibles de longueur k contenues dans une chaˆıne.

En g´enomique informatique, les k-mers d´esignent toutes les sous-s´equences possibles (de longueur k) `a partir d’une lecture obtenue par s´equen¸cage d’ADN.

Soit un fichier contenant un ensemble de s´equen¸cage d’ADN o`u chaque ligne est caract´eris´ee par une suite de lettres (sans espace). Nous souhaitons calculer le nombre de fois qu’apparait une suite de trois lettres. (nombre de sous-s´equences de longueur 3).

Exemple: Supposons le fichier d’entr´ee F contenant: ACACACAGT Le r´esultat retourn´e est: (ACA,3) (CAC,2) (CAG,1) (AGT,1)

• D´eterminer la cl´e et d´efinir l’op´eration Map g´en´erant le couple (cl´e,valeur).

• D´efinir l’op´eration Reduce.

Exercice 10

Le PageRank est un algorithme utilis´e par les moteurs de recherche pour la pond´eration et le classement des pages web. Il utilise pour ses calculs la multiplication d’une matrice par un vecteur. Cette op´eration doit ˆetre adapt´ee `a l’environnement Big Data.

Rappel: Soit une matriceAde taillem×net un vecteurV de taillen, le produitA×V est calcul´e comme suit:

A=

a11 a12 · · · a1n

a21 a22 · · · a2n

... ... . .. ... am1 am2 · · · amn

V =

 v1 v2

... vn

A×V =

a11×v1+a12×v2+· · ·+a1n×vn a21×v1+a22×v2+· · ·+a2n×vn

...

am1×v1+am2×v2+· · ·+amn×vn

Nous supposons que le vecteurV est pr´esent sur tous les noeuds (il n’est pas n´ecessaire de partitionnerV).

Ecrire en pseudo-code les tˆ´ achesMap et Reduce permettant la multiplication d’une matrice par un vecteur en suivant les ´etapes ci-dessous:

1. Les matrices sont souvent creuses (beaucoup de 0) dans ce type de probl`eme. Comment doit-on repr´esenter les donn´ees en entr´ees (Matrice A) pour optimiser le traitement?

2. D´eterminer la cl´e et d´efinir l’op´eration Map g´en´erant le couple (cl´e,valeur).

3. D´efinir l’op´eration Reduce.

Indication: Les indices des lignes et des colonnes vont vous ˆetes utiles.

Exercice 11

Soit le fichier Comp´etition Boxe contenant les r´esultats des diff´erents combats d’une comp´etition de boxe.

Chaque ligne repr´esente: (1) un boxeur (premier ´el´ement de la ligne) et (2) la liste des boxeurs qu’il a battu (les autres ´el´ements de la ligne). Par exemple, la ligne A,C,D exprime que le le boxeur A a battu les boxeurs C et D.

• Ecrire en pseudo-code le programme MapReduce permettant de retourner les boxeurs qui n’ont jamais´

(5)

Nous souhaitons ´etudier les variations de temp´erature dans une maison. Pour cela, chaque pi`ece est munie d’un ou plusieurs capteurs pour mesurer la temp´erature. Ces capteurs retournent `a des intervalles r´eguliers (toutes les 5 minutes) la temp´erature de la pi`ece. Les informations retourn´ees sont structur´ees comme suit:

id capteur|piece|horodatage|temperature

Ecrire en pseudo-code un programme MapReduce qui:

1. Retourne le nombre de fois qu’un mˆeme capteur a enregistr´e de fortes temp´eratures (>40°).

2. Retourne pour chaque pi`ece le jour et l’heure o`u a ´et´e enreg- istr´e la temp´erature minimale.

Ci-dessous un ´echantillon des donn´ees re- tourn´ees:

cap1|cuisine|20210304 10:30|28 cap1|cuisine|20210304 10:35|28.5 cap2|cuisine|20210304 10:40|27.2 cap3|sdb|20210304 11:45|20.8 cap3|sdb|20210304 11:50|20.1

Références

Documents relatifs

Prime object-attribute-condition triclustering method (OAC-prime) based on Formal Concept Analysis [24,25] is an extension for the triadic case of object- attribute biclustering

 Remplir un tableau T avec N entiers compris entre 65

[r]

[r]

Ecrire un programme qui lit deux entiers et renvoie la valeur absolue de la diff´ ´ erence de ceux-ci.. Exercice

(4) Effectuer une sym´ etrie axiale de l’image (on remplacera chaque image tab[i][j] par image tab[-i][j]).. (5) Effectuer une sym´ etrie centrale

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String s = value.toString();. String[] tab

 Non-trivial MapReduce programs consist of a sequence of Map and Reduce tasks.  Higher-level languages (Pig, Hive, etc.) help with writing