eadl:bloc5:fm3:td1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
eadl:bloc5:fm3:td1 [2026/09/17 00:10] – jcheroneadl:bloc5:fm3:td1 [2026/09/17 14:29] (Version actuelle) – jcheron
Ligne 43: Ligne 43:
 ===== 3. Architecture utilisée ===== ===== 3. Architecture utilisée =====
  
-<sxh> +<html><div class='imageB'></html> 
-                         +-----------------+ +<code> 
-                         | ResourceManager | +                         ┌─────────────────┐ 
-                         |      YARN       | +                         │ ResourceManager │ 
-                         +--------+--------+ +                         │      YARN       │ 
-                                  | +                         └────────┬────────┘ 
-              +-------------------+-------------------+ +                                  │ 
-              |                   |                   | +              ┌───────────────────┼───────────────────┐ 
-       +------v------+    +-------v-----+    +--------v------+ +              │                   │                   │ 
-       | NodeManager  |    | NodeManager |    | NodeManager   | +       ┌──────▼──────┐    ┌───────▼─────┐    ┌────────▼──────┐ 
-       |  DataNode 1  |    | DataNode 2 |    |  DataNode 3   | +       │ NodeManager │    │ NodeManager │    │  NodeManager  │ 
-       +--------------+    +-------------+    +---------------+ +       │  DataNode 1 │    │  DataNode 2 │    │  DataNode 3   │ 
-              ^                   ^                   ^ +       └─────────────┘    └─────────────┘    └───────────────┘ 
-              +-------------------+-------------------+ +              ▲                   ▲                   ▲ 
-                                  | +              └───────────────────┼───────────────────┘ 
-                         +--------v--------+ +                                  │ 
-                         |    NameNode     | +                         ┌────────▼────────┐ 
-                         | Métadonnées HDFS| +                         │    NameNode     │ 
-                         +-----------------+ +                         │ Métadonnées HDFS│ 
-</sxh> +                         └─────────────────┘ 
 +</code> 
 +<html></div></html>
 ^ Composant ^ Rôle ^ ^ Composant ^ Rôle ^
 | NameNode | Gère les métadonnées HDFS | | NameNode | Gère les métadonnées HDFS |
Ligne 312: Ligne 313:
         "montant"         "montant"
     ])     ])
-date_depart = date(2026, 1, 1)+    date_depart = date(2026, 1, 1)
  
-for i in range(args.lignes): +    for i in range(args.lignes): 
-    jour = date_depart + timedelta(days=random.randint(0, 30)) +        jour = date_depart + timedelta(days=random.randint(0, 30)) 
-    commande_id = f"C{i:07d}" +        commande_id = f"C{i:07d}" 
-    client_id = f"CL{random.randint(1, 50000):05d}" +        client_id = f"CL{random.randint(1, 50000):05d}" 
-    categorie = random.choice(categories) +        categorie = random.choice(categories) 
-    ville = random.choice(villes) +        ville = random.choice(villes) 
-    montant = round(random.uniform(5, 500), 2)+        montant = round(random.uniform(5, 500), 2)
  
-    writer.writerow([ +        writer.writerow([ 
-        jour, +            jour, 
-        commande_id, +            commande_id, 
-        client_id, +            client_id, 
-        categorie, +            categorie, 
-        ville, +            ville, 
-        montant +            montant 
-    ])+        ])
 </sxh> </sxh>
  
Ligne 954: Ligne 955:
   - Combien de reducers ont été utilisés ? Comment le savez-vous ?   - Combien de reducers ont été utilisés ? Comment le savez-vous ?
   - Ce traitement est-il apparu comme une application YARN, comme le wordcount précédent ?   - Ce traitement est-il apparu comme une application YARN, comme le wordcount précédent ?
-  - Le résultat obtenu est-il cohérent avec celui que vous obtiendrez en Spark (Mission 9) ?+  - Le résultat obtenu est-il cohérent avec celui que vous avez obtenu avec Spark (Mission 9) ?
  
 ---- ----
Ligne 970: Ligne 971:
 ==== Instructions ==== ==== Instructions ====
  
-  - A. Modifier ''mapper.py'' pour qu'il émette ''(ville, montant)'' au lieu de ''(categorie, montant)''. +  - Modifier ''mapper.py'' pour qu'il émette ''(ville, montant)'' au lieu de ''(categorie, montant)''. 
-  - B. Modifier ''reducer.py'' pour qu'il calcule une **moyenne** et non plus une somme. +  - Modifier ''reducer.py'' pour qu'il calcule une **moyenne** et non plus une somme. 
-  - C. Relancer le traitement avec un nouveau répertoire de sortie : ''/data/ecommerce/processed/moyenne_par_ville''. +  - Relancer le traitement avec un nouveau répertoire de sortie : ''/data/ecommerce/processed/moyenne_par_ville''. 
-  - D. Observer le résultat.+  - Observer le résultat.
  
 ==== Squelette du reducer à compléter ==== ==== Squelette du reducer à compléter ====
Ligne 998: Ligne 999:
 ==== 19.8 Questions de synthèse ==== ==== 19.8 Questions de synthèse ====
  
-  - Q1. Pourquoi ne peut-on pas faire la moyenne des moyennes obtenues par chaque mapper pour obtenir la moyenne globale ? +  - Pourquoi ne peut-on pas faire la moyenne des moyennes obtenues par chaque mapper pour obtenir la moyenne globale ? 
-  - Q2. Combien de lignes le mapper a-t-il produites en sortie ? Combien le reducer en a-t-il produites ? +  - Combien de lignes le mapper a-t-il produites en sortie ? Combien le reducer en a-t-il produites ? 
-  - Q3. Si vous deviez calculer le CA par catégorie **et** par ville en même temps, comment modifieriez-vous la clé émise par le mapper ? +  - Si vous deviez calculer le CA par catégorie **et** par ville en même temps, comment modifieriez-vous la clé émise par le mapper ? 
-  - Q4. En quoi ce traitement est-il plus verbeux que l'équivalent Spark (''groupBy().agg()'') que vous allez écrire en Mission 9 ? Citez au moins deux différences concrètes. +  - En quoi ce traitement est-il plus verbeux que l'équivalent Spark (''groupBy().agg()'') que vous allez écrire en Mission 9 ? Citez au moins deux différences concrètes. 
-  - Q5. Où sont physiquement stockés les fichiers ''part-00000'' produits en sortie ? Quel composant Hadoop les a répartis sur le cluster ?+  - Où sont physiquement stockés les fichiers ''part-00000'' produits en sortie ? Quel composant Hadoop les a répartis sur le cluster ?
  
 <WRAP tip round> <WRAP tip round>
-Gardez vos résultats MapReduce sous la main : la Mission 9 vous demandera de les comparer directement avec les résultats obtenus en Spark.+Comparez vos résultats MapReduce avec ceux de la mission 9 obtenus en Spark.
 </WRAP> </WRAP>
  
  • eadl/bloc5/fm3/td1.1789596624.txt.gz
  • Dernière modification : il y a 8 semaines
  • de jcheron