Geek Dirt

Avr 24, 2021

Dans le premier article de la série Hadoop, Introduction de Hadoop et exécution d’un programme map-Reduce, j’ai expliqué les bases de Map-Reduce. Dans cet article, j’explique ses différents composants comme le partitionnement, la Lecture aléatoire, le Combinateur, la Fusion, le Tri d’abord, puis son fonctionnement.

Partitionnement:

Si le nombre de réducteurs est 2 et que la fonction de hachage est:

#This function would return the data passes in itfunction hash(data){#this is just for example purposereturn data;}

puis pour la clé 1:

numéro de partition = hachage(1) % 2 = 1;

pour la clé 2:

numéro de partition = hachage(2) % 2 = 0;

pour la clé 4 :

numéro de partition = hachage(4) % 2 = 0;

Cela signifie que la sortie pour la clé 1 irait dans partition_1 et la sortie pour les clés 2 et 4 irait dans partition_0.

Shuffle:

Dans la sortie finale de la tâche de mappage, il peut y avoir plusieurs partitions et ces partitions doivent aller à différentes tâches de réduction. Le brassage consiste essentiellement à transférer des partitions de sortie de carte vers les tâches de réduction correspondantes. La tâche de cartographie a informé le maître d’application de l’achèvement de la tâche de cartographie et le maître d’application informe le réducteur correspondant de copier la sortie de la carte dans la machine de réduction.

Combiner:

Tri:

Il s’agit simplement de trier les données en fonction des clés.

Fusion:

Cela se produit côté réducteur. Reducer peut obtenir des données de plusieurs tâches cartographiques et, en fusionnant, fusionne les données de différentes tâches cartographiques en une seule unité, en maintenant l’ordre de tri.

Carte – Réduire en détail:

Carte:

Il a une mémoire circular buffer et il écrit directement dans le tampon. Lorsque le tampon atteint la valeur seuil (80% par défaut), il commence à écrire à spill file via un background thread séparé. La tâche de mappage peut toujours écrire sa sortie dans le tampon pendant l’exécution du thread d’arrière-plan. Avant d’écrire dans le fichier spill, la sortie de la carte qui est une paire clé-valeur est partitionnée et triée. Si un combineur est là, il est également exécuté, ce qui réduit la taille de sortie.

Après la tâche, tous les fichiers de déversement sont triés à nouveau et un seul fichier est créé qui est partitionné et trié. Signifie que ce fichier de sortie final a plusieurs partitions. Une fois la tâche de mappage terminée pour un nœud, sa sortie est envoyée au réducteur. C’est pourquoi vous voyez réduire la tâche de plus de 0% alors que la carte est inférieure à < 100%.

Lorsque vous avez une tâche de mappage uniquement, il n’y a pas de brassage du tout, ce qui signifie que les mappeurs écriront la sortie finale directement sur le HDFS.

Réduire:

Après avoir obtenu les données de la tâche de carte, il fusionne les données en une seule unité pendant le merge phase. Au lieu de fusionner directement tous les fichiers en un seul, il utilise le concept de merge factor, dont le but est de minimiser la quantité de données écrites sur le disque. Ensuite, pendant la phase de réduction, la fonction de réduction est appelée pour chaque clé de la sortie triée. La sortie de cette phase est écrite directement dans le système de fichiers de sortie, généralement HDFS.

Liens utiles:

Introduction et travail du fil

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.