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. Le programme MapReduce fonctionne en deux phases, à savoir, Map et Reduce. Les tâches de mappage traitent du fractionnement et du mappage des données tandis que la réduction des tâches mélange et réduit les données.
Hadoop est capable d'exécuter des programmes MapReduce écrits dans différents langages: Java, Ruby, Python et C ++. Les programmes de Map Reduce dans le cloud computing sont de nature parallèle, ils sont donc très utiles pour effectuer une analyse de données à grande échelle en utilisant plusieurs machines dans le cluster.
L'entrée de chaque phase est constituée de paires clé-valeur . De plus, chaque programmeur doit spécifier deux fonctions: la fonction de mappage et la fonction de réduction .
Dans ce didacticiel Hadoop MapReduce pour débutants, vous apprendrez-
- Qu'est-ce que MapReduce dans Hadoop?
- L'architecture MapReduce dans le Big Data expliquée en détail
- MapReduce Architecture expliquée en détail
- Comment MapReduce organise-t-il le travail?
L'architecture MapReduce dans le Big Data expliquée en détail
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 programme MapReduce dans le Big Data
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Le résultat final de la tâche MapReduce est
mal | 1 |
Classer | 1 |
bon | 1 |
Hadoop | 3 |
est | 2 |
à | 1 |
Bienvenue | 1 |
Les données passent par les phases suivantes de MapReduce dans le Big Data
Divisions d'entrée:
Une entrée dans une tâche MapReduce dans le Big Data est divisée en éléments de taille fixe appelés divisions d'entrée La division d' entrée est une partie de l'entrée qui est consommée par une seule carte.
Cartographie
Il s'agit de la toute première phase de l'exécution du programme de réduction de carte. 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 mappage est de compter un nombre d'occurrences de chaque mot à partir des divisions d'entrée (plus de détails sur la division d'entrée sont donnés ci-dessous) et de préparer une liste sous la forme de
Mélange
Cette phase consomme la sortie de la phase de cartographie. Sa tâche est de consolider les enregistrements pertinents à partir 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 nombre total d'occurrences de chaque mot.
MapReduce Architecture expliquée en détail
- Une tâche de carte est créée pour chaque division, qui exécute ensuite la fonction de carte pour chaque enregistrement de la division.
- Il est toujours avantageux d'avoir plusieurs fractionnements car le temps nécessaire pour traiter un fractionnement est petit par rapport au temps nécessaire pour le traitement de l'ensemble de l'entrée. Lorsque les fractionnements sont plus petits, il est préférable que le traitement soit équilibré car nous traitons les fractionnements en parallèle.
- Cependant, il n'est pas non plus souhaitable d'avoir des fentes de trop petite taille. Lorsque les fractionnements sont trop petits, la surcharge liée à la gestion des fractionnements et à la création de tâches de mappage commence à dominer le temps total d'exécution du travail.
- Pour la plupart des travaux, il est préférable de créer une taille de division égale à la taille d'un bloc HDFS (qui est de 64 Mo, par défaut).
- L'exécution des tâches de mappage 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 sur 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 la 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 la carte.
- Réduire la tâche ne fonctionne pas sur le concept de localité des données. Une sortie de chaque tâche de carte est transmise à la tâche de réduction. La sortie de la carte est transférée vers la machine sur laquelle la tâche de réduction est exécutée.
- Sur cette machine, la sortie est fusionnée puis transmise à la fonction de réduction définie par l'utilisateur.
- Contrairement à la sortie de la carte, 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-t-il 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:
- Mapper les tâches (fractionnements et mappage)
- Réduire les tâches (mélange, réduction)
comme mentionné ci-dessus.
Le processus d'exécution complet (exécution des tâches de mappage et de réduction, les deux) est contrôlé par deux types d'entités appelées
- Jobtracker : agit comme un maître (responsable de l'exécution complète du travail soumis)
- Suivi des tâches multiples : agit comme des esclaves, chacun d'entre eux effectuant le travail
Pour chaque travail soumis pour exécution dans le système, il y a un Jobtracker qui réside sur Namenode et il y a plusieurs tasktrackers qui résident sur Datanode .
![](https://cdn.css-code.org/8559296/what_is_mapreduce_in_hadoop_architecture_example.png.webp)
- 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 traqueur de travaux de coordonner l'activité en planifiant les tâches à exécuter sur différents nœuds de données.
- L'exécution de la tâche individuelle est alors à surveiller par le suivi des tâches, qui réside sur chaque nœud de données exécutant une partie du travail.
- La responsabilité du traqueur de tâches est d'envoyer le rapport d'avancement au traqueur de travaux.
- De plus, le tracker de tâches envoie périodiquement un signal de «pulsation» au Jobtracker afin de l'informer de l'état actuel du système.
- Ainsi, le traqueur de travaux garde une trace de la progression globale de chaque travail. En cas d'échec de la tâche, le traqueur de travaux peut le replanifier sur un autre traqueur de tâches.