HBase
 sql >> Base de données >  >> NoSQL >> HBase

Organigramme d'exécution des tâches Hadoop MapReduce

Dans ce Hadoop blog, nous allons vous fournir un flux d'exécution de travail MapReduce de bout en bout. Ici, nous décrirons en détail chaque composant qui fait partie de MapReduce.

Ce blog vous aidera à répondre à comment fonctionne Hadoop MapReduce, comment les données circulent dans MapReduce, comment le travail Mapreduce est exécuté dans Hadoop ?

Qu'est-ce que MapReduce ?

Hadoop MapReduce est la couche de traitement des données. Il traite l'énorme quantité de données structurées et non structurées stockées dans HDFS. MapReduce traite les données en parallèle en divisant le travail en un ensemble de tâches indépendantes. Ainsi, le traitement parallèle améliore la vitesse et la fiabilité.

Le traitement des données Hadoop MapReduce se déroule en 2 phases :la phase Map et Reduce.

  • Phase de la carte- C'est la première phase du traitement des données. Dans cette phase, nous spécifions toute la logique complexe/règles métier/code coûteux.
  • Réduire la phase- C'est la deuxième phase du traitement. Dans cette phase, nous spécifions un traitement léger comme l'agrégation/la sommation.

Étapes du flux d'exécution des tâches MapReduce

MapReduce traite les données en différentes phases à l'aide de différents composants. Discutons des étapes d'exécution des tâches dans Hadoop.

1. Fichiers d'entrée

Dans les fichiers d'entrée, les données du travail MapReduce sont stockées. DansHDFS , les fichiers d'entrée résident. Le format des fichiers d'entrée est arbitraire. Les fichiers journaux basés sur les lignes et le format binaire peuvent également être utilisés.

2. Format d'entrée

Après cela, InputFormat définit comment diviser et lire ces fichiers d'entrée. Il sélectionne les fichiers ou d'autres objets pour l'entrée. InputFormat crée InputSplit.

3. Divisions d'entrée

Il représente les données qui seront traitées par un Mappeur individuel . Pour chaque division, une tâche de carte est créée. Ainsi, le nombre de tâches de carte est égal au nombre d'InputSplits. Framework diviser en enregistrements, quel processus de mappage.

4. Lecteur d'enregistrements

Il communique avec l'inputSplit. Et convertit ensuite les données en paires clé-valeur adapté à la lecture par le Mapper. RecordReader utilise par défaut TextInputFormat pour convertir les données en une paire clé-valeur.

Il communique avec l'InputSplit jusqu'à la fin de la lecture du fichier. Il attribue un décalage d'octet à chaque ligne présente dans le fichier. Ensuite, ces paires clé-valeur sont ensuite envoyées au mappeur pour un traitement ultérieur.

5. Mappeur

Il traite l'enregistrement d'entrée produit par le RecordReader et génère des paires clé-valeur intermédiaires. La sortie intermédiaire est complètement différente de la paire d'entrée. La sortie du mappeur est la collection complète de paires clé-valeur.

Le framework Hadoop ne stocke pas la sortie du mappeur sur HDFS. Il ne stocke pas, car les données sont temporaires et l'écriture sur HDFS créera des copies multiples inutiles. Ensuite, Mapper transmet la sortie au combinateur pour un traitement ultérieur.

4. Combinateur

Combiner est un mini-réducteur qui effectue une agrégation locale sur la sortie du mappeur. Il minimise le transfert de données entre le mappeur et le réducteur. Ainsi, lorsque la fonctionnalité de combinateur est terminée, le framework transmet la sortie au partitionneur pour un traitement ultérieur.

5. Partitionneur

Le partitionneur apparaît si nous travaillons avec plus d'un réducteur. Il prend la sortie du combinateur et effectue le partitionnement.

Le partitionnement de la sortie s'effectue sur la base de la clé dans MapReduce. Par fonction de hachage, la clé (ou un sous-ensemble de la clé) dérive la partition.

Sur la base de la valeur de clé dans MapReduce, le partitionnement de chaque sortie de combinateur a lieu. Et puis l'enregistrement ayant la même valeur de clé va dans la même partition. Après cela, chaque partition est envoyée à un réducteur.

Le partitionnement dans l'exécution de MapReduce permet une distribution uniforme de la sortie de la carte sur le réducteur.

6. Mélanger et trier

Après le partitionnement, la sortie est mélangée au nœud de réduction. Le brassage est le mouvement physique des données qui se fait sur le réseau. Au fur et à mesure que tous les mappeurs terminent et mélangent la sortie sur les nœuds réducteurs.

Ensuite, le framework fusionne cette sortie intermédiaire et le tri. Ceci est ensuite fourni comme entrée pour réduire la phase.

7. Réducteur

Le réducteur prend alors un ensemble de paires clé-valeur intermédiaires produites par les mappeurs comme entrée. Après cela, exécute une fonction de réduction sur chacun d'eux pour générer la sortie.

La sortie du réducteur est la sortie finale. Ensuite, le framework stocke la sortie sur HDFS.

8. RecordWriter

Il écrit ces paires clé-valeur de sortie de la phase Reducer dans les fichiers de sortie.

9. Format de sortie

OutputFormat définit la façon dont RecordReader écrit ces paires clé-valeur de sortie dans les fichiers de sortie. Ainsi, ses instances fournies par les fichiers d'écriture Hadoop dans HDFS. Ainsi, les instances OutputFormat écrivent la sortie finale du réducteur sur HDFS.

Conclusion

Nous avons appris étape par étape le flux d'exécution des tâches MapReduce. J'espère que ce blog vous aidera beaucoup à comprendre le fonctionnement de MapReduce.

Si vous avez encore des questions concernant le flux d'exécution des tâches MapReduce, vous pouvez donc les partager avec nous dans la section des commentaires ci-dessous. Nous ferons de notre mieux pour les résoudre.