Qu’est-ce que MapReduce dans Hadoop ? Big Data Architecture

Qu'est-ce que MapReduce dans Hadoop ?

MapReduce est un cadre logiciel et un modèle de programmation utilisé pour traiter d'énormes quantités de données. MapReduce le programme fonctionne en deux phases, à savoir Map et Reduction. Les tâches de cartographie traitent du fractionnement et du mappage des données, tandis que les tâches de réduction mélangent et réduisent les données.

Hadoop est capable d'exécuter des programmes MapReduce écrits dans différents langages : Java, Rubis, Python et C++Les programmes de Map Reduce dans le cloud computing sont de nature parallèle et sont donc très utiles pour effectuer des analyses de données à grande échelle à l'aide de plusieurs machines du cluster.

L'entrée de chaque phase est valeur clé paires. De plus, chaque programmeur doit spécifier deux fonctions : fonction de carte et fonction de réduction.

MapReduce Architecture dans le Big Data expliquée avec un exemple

L'ensemble du processus passe par quatre phases d'exécution, à savoir le fractionnement, le mappage, le brassage et la réduction.

Maintenant, dans ce didacticiel MapReduce, comprenons avec un exemple MapReduce :

Considérez que vous disposez des données d'entrée suivantes pour votre MapReduce dans Programme Big Data

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapReduce Architecture
MapReduce Architecture

Le résultat final de la tâche MapReduce est

mauvais 1
Classe 1
Bien 1
Hadoop 3
is 2
à 1
ACCUEIL 1

Les données passent par les phases suivantes de MapReduce dans Big Data

Divisions d'entrée :

Une entrée dans une tâche MapReduce in Big Data est divisée en éléments de taille fixe appelés divisions d'entrée La répartition des entrées est une partie de l'entrée consommée par une seule carte.

Cartographie

Il s'agit de la toute première phase de l'exécution du programme map-reduce. Dans cette phase, les données de chaque division sont transmises à une fonction de mappage pour produire des valeurs de sortie. Dans notre exemple, un travail de phase de cartographie consiste à compter un nombre d'occurrences de chaque mot à partir des fractionnements d'entrée (plus de détails sur le fractionnement d'entrée sont donnés ci-dessous) et à préparer une liste sous la forme de

Mélange

Cette phase consomme la sortie de la phase de mappage. Sa tâche est de consolider les enregistrements pertinents issus de la sortie de la phase de cartographie. Dans notre exemple, les mêmes mots sont regroupés avec leur fréquence respective.

Réduire

Dans cette phase, les valeurs de sortie de la phase Shuffling sont agrégées. Cette phase combine les valeurs de la phase Shuffling et renvoie une valeur de sortie unique. En bref, cette phase résume l'ensemble de données complet.

Dans notre exemple, cette phase regroupe les valeurs de la phase Shuffling, c'est-à-dire calcule le total des occurrences de chaque mot.

MapReduce Architecture expliquée en détail

  • Une tâche de mappage est créée pour chaque division, qui exécute ensuite la fonction de mappage pour chaque enregistrement de la division.
  • Il est toujours avantageux d'avoir plusieurs fractionnements car le temps nécessaire au traitement d'un fractionnement est faible par rapport au temps nécessaire au traitement de l'ensemble de l'entrée. Lorsque les divisions sont plus petites, il est préférable d'équilibrer la charge du traitement puisque nous traitons les divisions en parallèle.
  • Cependant, il n’est pas non plus souhaitable d’avoir des divisions de taille trop petite. Lorsque les divisions sont trop petites, la surcharge liée à la gestion des divisions et à la création de tâches de cartographie commence à dominer le temps total d'exécution des tâches.
  • Pour la plupart des tâches, il est préférable de créer une taille de partage égale à la taille d'un bloc HDFS (qui est de 64 Mo par défaut).
  • L'exécution des tâches de cartographie entraîne l'écriture de la sortie sur un disque local sur le nœud respectif et non sur HDFS.
  • La raison du choix du disque local plutôt que de HDFS est d'éviter la réplication qui a lieu en cas de fonctionnement du magasin HDFS.
  • La sortie de la carte est une sortie intermédiaire qui est traitée par des tâches de réduction pour produire la sortie finale.
  • Une fois le travail terminé, la sortie de la carte peut être supprimée. Ainsi, le stocker dans HDFS avec réplication devient excessif.
  • En cas de défaillance d'un nœud, avant que la sortie de carte ne soit consommée par la tâche de réduction, Hadoop réexécute la tâche de carte sur un autre nœud et recrée la sortie de carte.
  • Réduire la tâche ne fonctionne pas sur le concept de localité des données. Une sortie de chaque tâche de cartographie est transmise à la tâche de réduction. La sortie de la carte est transférée à la machine sur laquelle la tâche de réduction est en cours d'exécution.
  • Sur cette machine, la sortie est fusionnée puis transmise à la fonction de réduction définie par l'utilisateur.
  • Contrairement à la sortie cartographique, la sortie de réduction est stockée dans HDFS (la première réplique est stockée sur le nœud local et les autres répliques sont stockées sur des nœuds hors rack). Donc, écrire la sortie de réduction

Comment MapReduce organise le travail ?

Maintenant, dans ce didacticiel MapReduce, nous allons apprendre comment fonctionne MapReduce

Hadoop divise le travail en tâches. Il existe deux types de tâches :

  1. Tâches de cartographie (Splits et cartographie)
  2. Réduire les tâches (Mélanger, réduire)

comme mentionné ci-dessus.

Le processus d'exécution complet (exécution des tâches Map et Reduction, toutes deux) est contrôlé par deux types d'entités appelées entités

  1. Suivi d'emploi: Agit comme un maître (responsable de l'exécution complète du travail soumis)
  2. Suivi de tâches multiples: Agit comme des esclaves, chacun d'eux accomplit le travail

Pour chaque travail soumis pour exécution dans le système, il existe un Suivi d'emploi qui réside sur NoeudNom et il y a plusieurs trackers de tâches qui résident sur nœud de données.

Comment fonctionne Hadoop MapReduce
Comment fonctionne Hadoop MapReduce
  • Un travail est divisé en plusieurs tâches qui sont ensuite exécutées sur plusieurs nœuds de données dans un cluster.
  • Il est de la responsabilité du suivi des tâches de coordonner l'activité en planifiant les tâches à exécuter sur différents nœuds de données.
  • L'exécution d'une tâche individuelle est ensuite gérée par un outil de suivi des tâches, qui réside sur chaque nœud de données exécutant une partie du travail.
  • La responsabilité du tracker de tâches est d'envoyer le rapport d'avancement au tracker de tâches.
  • De plus, le suivi des tâches envoie périodiquement 'battement de coeur' au Jobtracker afin de l'informer de l'état actuel du système.
  • Ainsi, Job Tracker assure le suivi de la progression globale de chaque travail. En cas d'échec d'une tâche, le gestionnaire de tâches peut la reprogrammer sur un autre gestionnaire de tâches.

Résumez cet article avec :