La fouille répartie : MapReduce et Spark

Comment une fouille se calcule sur plusieurs machines : map, shuffle, reduce, combineur et partitions, puis Spark (transformations paresseuses, étroites ou larges, et actions) et les cinq tâches de fouille.

  • 23 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • MapReduce : de quoi s'agit-il ?

    Voir la réponse

    Modèle de calcul réparti en trois phases : transformer chaque enregistrement en paires clé-valeur, regrouper les paires par clé, puis résumer chaque groupe.

    Pour compter les codes HTTP d'un journal, map émet (code, 1) pour chaque ligne, le shuffle regroupe les 404 ensemble, reduce additionne les 1.

  • Deux blocs d'un journal web ont chacun ces codes : bloc 1 = 200, 404, 200 ; bloc 2 = 404, 404, 500. Que vaut le total de la clé 404 après le reduce ?

    • 3
    • 2
    • 6
    • 1
    Voir la réponse

    3

    Map émet une paire (code, 1) par ligne : un 404 dans le bloc 1, deux dans le bloc 2. Le shuffle les range ensemble et reduce additionne 1 + 1 + 1 = 3. 6 est le nombre total de lignes.

  • Un … réduit les paires localement sur chaque machine avant le shuffle, ce qui diminue les données échangées sur le réseau.

    Voir la réponse

    Un combineur réduit les paires localement sur chaque machine avant le shuffle, ce qui diminue les données échangées sur le réseau.

    Pour un comptage, la machine envoie (404, 5000) au lieu de 5000 paires (404, 1). Cela ne marche que si l'opération est associative et commutative, comme l'addition.

  • Phase de brassage (shuffle) : de quoi s'agit-il ?

    Voir la réponse

    Étape qui envoie à travers le réseau toutes les paires portant la même clé vers la même machine.

    C'est l'étape la plus coûteuse : elle déplace des données entre machines. D'où l'intérêt de réduire d'abord localement avec un combineur.

  • Un comptage de mots sur 500 Go est lent à cause du volume échangé au shuffle. Quelle modification a le plus d'effet ?

    • Ajouter un combineur qui additionne les paires localement avant le brassage
    • Remplacer la somme par une moyenne dans le reduce
    • Augmenter le nombre de tâches reduce pour répartir le travail
    • Compresser le fichier d'entrée en gzip avant le traitement
    Voir la réponse

    Ajouter un combineur qui additionne les paires localement avant le brassage

    Sans combineur, chaque occurrence d'un mot produit une paire (mot, 1) qui traverse le réseau. Avec lui, chaque machine envoie un total par mot. Plus de tâches reduce répartissent les mêmes paires sans en réduire le nombre, compresser l'entrée allège la lecture, pas l'échange, et une moyenne ne se combine pas telle quelle.