Comment fonctionne MapReduce? - Fonctionnement, phases et avantages de MapReduce

Table des matières:

Anonim

Introduction à MapReduce

MapReduce est un composant informatique de Hadoop Framework permettant d'écrire facilement des applications qui traitent de grandes quantités de données en parallèle et stockées sur de grands groupes de machines de base bon marché d'une manière fiable et tolérante aux pannes. Dans cette rubrique, nous allons découvrir comment fonctionne MapReduce?

MapReduce peut effectuer des calculs distribués et parallèles à l'aide de grands ensembles de données sur un grand nombre de nœuds. Un travail MapReduce divise généralement les jeux de données en entrée, puis traite chacun d'eux indépendamment par les tâches de carte de manière complètement parallèle. La sortie est ensuite triée et entrée pour réduire les tâches. L'entrée et la sortie du travail sont stockées dans des systèmes de fichiers. Les tâches sont planifiées et contrôlées par le framework.

Comment fonctionne MapReduce?

L'architecture MapReduce contient deux composants principaux en tant que services Daemon chargés d'exécuter les tâches de mappage et de réduction, de surveiller et de réexécuter les tâches en cas d'échec. Dans Hadoop 2, Resource Manager et Node Manager sont les services démon. Lorsque le client de travail soumet un travail MapReduce, ces démons entrent en action. Ils sont également responsables du traitement parallèle et des fonctionnalités de tolérance aux pannes des travaux MapReduce.

Dans Hadoop 2, les fonctionnalités de gestion des ressources et de planification des tâches ou de surveillance sont séparées par YARN (Yet Another Resource Negotiator) en tant que différents démons. Par rapport à Hadoop 1 avec Job Tracker et Task Tracker, Hadoop 2 contient un gestionnaire de ressources global (RM) et des maîtres d'application (AM) pour chaque application.

  • Job Client soumet le travail au gestionnaire de ressources.
  • Le planificateur de YARN Resource Manager est responsable de la coordination de l'allocation des ressources du cluster entre les applications en cours d'exécution.
  • Le gestionnaire de nœuds YARN s'exécute sur chaque nœud et effectue la gestion des ressources au niveau du nœud, en coordination avec le gestionnaire de ressources. Il lance et surveille les conteneurs de calcul sur la machine du cluster.
  • Application Master aide les ressources de Resource Manager et utilise Node Manager pour exécuter et coordonner les tâches MapReduce.

  • HDFS est généralement utilisé pour partager les fichiers de travail entre d'autres entités.

Phases du modèle MapReduce

Le modèle MapReduce comporte trois phases principales et une phase facultative:

1. Mappeur

  • Il s'agit de la première phase de la programmation MapReduce et contient la logique de codage de la fonction mappeur.
  • La logique conditionnelle est appliquée à un nombre «n» de blocs de données répartis sur divers nœuds de données.
  • La fonction de mappeur accepte les paires clé-valeur en entrée sous la forme (k, v), où la clé représente l'adresse de décalage de chaque enregistrement et la valeur représente le contenu entier de l'enregistrement.
  • La sortie de la phase du mappeur sera également au format clé-valeur comme (k ', v').

2. Mélanger et trier

  • La sortie de différents mappeurs (k ', v') passe ensuite en phase Shuffle et Sort.
  • Toutes les valeurs en double sont supprimées et différentes valeurs sont regroupées en fonction de clés similaires.
  • La sortie de la phase Shuffle and Sort sera à nouveau des paires clé-valeur en tant que clé et tableau de valeurs (k, v ()).

3. Réducteur

  • La sortie de la phase Shuffle and Sort (k, v ()) sera l'entrée de la phase Reducer.
  • Dans cette phase, la logique de la fonction de réduction est exécutée et toutes les valeurs sont agrégées par rapport à leurs clés correspondantes.
  • Le réducteur consolide les sorties de divers mappeurs et calcule la sortie finale du travail.
  • La sortie finale est ensuite écrite dans un seul fichier dans un répertoire de sortie de HDFS.

4. Combinateur

  • Il s'agit d'une phase facultative dans le modèle MapReduce.
  • La phase de combinateur est utilisée pour optimiser les performances des travaux MapReduce.
  • Dans cette phase, différentes sorties des mappeurs sont réduites localement au niveau du nœud.
  • Par exemple, si différentes sorties de mappeur (k, v) provenant d'un seul nœud contiennent des doublons, elles sont combinées, c'est-à-dire réduites localement en une seule sortie (k, v ()).
  • Cette phase accélère et accélère le fonctionnement de la phase Shuffle and Sort, permettant ainsi des performances supplémentaires dans les travaux MapReduce.

Toutes ces phases d'un travail MapReduce peuvent être décrites comme suit:

Par exemple, la logique MapReduce pour trouver le nombre de mots sur un tableau de mots peut être affichée comme ci-dessous:

fruits_array = (pomme, orange, pomme, goyave, raisin, orange, pomme)

  • La phase de mappage symbolise le tableau de mots d'entrée en un nombre de mots «n» pour donner la sortie sous la forme (k, v). Par exemple, pensez à «pomme». La sortie du mappeur sera (pomme, 1), (pomme, 1), (pomme, 1).
  • La lecture aléatoire et le tri acceptent la sortie du mappeur (k, v) et regroupent toutes les valeurs en fonction de leurs clés sous la forme (k, v ()). c'est-à-dire (pomme, (1, 1, 1)).
  • La phase Réducteur accepte la sortie Shuffle et sort et donne l'agrégat des valeurs (apple, (1 + 1 + 1)), correspondant à leurs clés. c'est-à-dire (pomme, 3).

Exécution spéculative du travail MapReduce

La vitesse de MapReduce est dominée par la tâche la plus lente. Donc, pour augmenter la vitesse, un nouveau mappeur fonctionnera sur le même ensemble de données en même temps. Celui qui termine la tâche en premier est considéré comme la sortie finale et l'autre est tué. C'est une technique d'optimisation.

Avantages de MapReduce

Voici les avantages de MapReduce mentionnés ci-dessous

1. Tolérance aux pannes

  • Au milieu d'un travail de réduction de carte, si une machine transportant quelques blocs de données échoue, l'architecture gère l'échec.
  • Il considère les copies répliquées des blocs dans des machines alternatives pour un traitement ultérieur.

2. Résilience

  • Chaque nœud met périodiquement à jour son état sur le nœud maître.
  • Si un nœud esclave n'envoie pas sa notification, le nœud maître réaffecte la tâche en cours d'exécution de ce nœud esclave à d'autres nœuds disponibles dans le cluster.

3. Rapide

  • Le traitement des données est rapide car MapReduce utilise HDFS comme système de stockage.
  • MapReduce prend quelques minutes pour traiter des téraoctets de gros volumes de données non structurés.

4. Traitement parallèle

  • Les tâches MapReduce traitent plusieurs morceaux des mêmes ensembles de données en parallèle en divisant les tâches.
  • Cela donne l'avantage de terminer la tâche en moins de temps.

5. Disponibilité

  • Plusieurs répliques des mêmes données sont envoyées à de nombreux nœuds du réseau.
  • Ainsi, en cas de panne, d'autres copies sont facilement disponibles pour traitement sans aucune perte.

6. Évolutivité

  • Hadoop est une plate-forme hautement évolutive.
  • Les systèmes SGBDR traditionnels ne sont pas évolutifs en fonction de l'augmentation du volume de données.
  • MapReduce vous permet d'exécuter des applications à partir d'un grand nombre de nœuds, en utilisant des téraoctets et des pétaoctets de données.

7. Rentable

  • La fonctionnalité de mise à l'échelle d'Hadoop ainsi que la programmation MapReduce vous permettent de stocker et de traiter des données de manière très efficace et abordable.
  • Les économies de coûts peuvent être énormes: des centaines de téraoctets de données.

Conclusion - Fonctionnement de MapReduce

Les données modernes évoluent davantage vers le type non structuré et une énorme option de traitement de données conventionnelle comme le SGBDR est encore plus difficile, longue et coûteuse. Mais la programmation MapReduce de Hadoop est beaucoup plus efficace, plus sûre et plus rapide dans le traitement de grands ensembles de données, même de téraoctets ou pétaoctets.

Articles recommandés

Ceci est un guide sur le fonctionnement de MapReduce. Ici, nous discutons des phases du modèle MapReduce avec des avantages et comment cela fonctionne. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Composants de l'écosystème Hadoop
  2. Algorithmes MapReduce
  3. Qu'est-ce que MapReduce dans Hadoop?
  4. Questions d'entretiens chez MapReduce