MapReduce - Introduction

MapReduce est un modèle de programmation pour l'écriture d'applications capables de traiter le Big Data en parallèle sur plusieurs nœuds. MapReduce fournit des capacités analytiques pour analyser d'énormes volumes de données complexes.

Qu'est-ce que le Big Data?

Le Big Data est un ensemble de grands ensembles de données qui ne peuvent pas être traités à l'aide des techniques informatiques traditionnelles. Par exemple, le volume de données dont Facebook ou Youtube ont besoin pour collecter et gérer au quotidien, peut entrer dans la catégorie du Big Data. Cependant, le Big Data n'est pas seulement une question d'échelle et de volume, il implique également un ou plusieurs des aspects suivants - Vitesse, Variété, Volume et Complexité.

Pourquoi MapReduce?

Les systèmes d'entreprise traditionnels ont normalement un serveur centralisé pour stocker et traiter les données. L'illustration suivante présente une vue schématique d'un système d'entreprise traditionnel. Le modèle traditionnel n'est certainement pas adapté pour traiter d'énormes volumes de données évolutives et ne peut pas être pris en charge par les serveurs de base de données standard. De plus, le système centralisé crée trop de goulots d'étranglement lors du traitement simultané de plusieurs fichiers.

Google a résolu ce problème de goulot d'étranglement à l'aide d'un algorithme appelé MapReduce. MapReduce divise une tâche en petites parties et les affecte à de nombreux ordinateurs. Plus tard, les résultats sont collectés en un seul endroit et intégrés pour former l'ensemble de données de résultats.

Comment fonctionne MapReduce?

L'algorithme MapReduce contient deux tâches importantes, à savoir Map et Reduce.

  • La tâche de mappage prend un ensemble de données et le convertit en un autre ensemble de données, où les éléments individuels sont décomposés en tuples (paires clé-valeur).

  • La tâche Réduire prend la sortie de la mappe comme entrée et combine ces tuples de données (paires clé-valeur) en un ensemble plus petit de tuples.

La tâche de réduction est toujours effectuée après la tâche de carte.

Examinons maintenant de près chacune des phases et essayons de comprendre leur signification.

  • Input Phase - Ici, nous avons un lecteur d'enregistrement qui traduit chaque enregistrement dans un fichier d'entrée et envoie les données analysées au mappeur sous la forme de paires clé-valeur.

  • Map - Map est une fonction définie par l'utilisateur, qui prend une série de paires clé-valeur et traite chacune d'elles pour générer zéro ou plusieurs paires clé-valeur.

  • Intermediate Keys - Les paires clé-valeur générées par le mappeur sont appelées clés intermédiaires.

  • Combiner- Un combineur est un type de réducteur local qui regroupe des données similaires de la phase cartographique dans des ensembles identifiables. Il prend les clés intermédiaires du mappeur comme entrée et applique un code défini par l'utilisateur pour agréger les valeurs dans une petite étendue d'un mappeur. Il ne fait pas partie de l'algorithme principal de MapReduce; c'est facultatif.

  • Shuffle and Sort- La tâche Réducteur commence par l'étape Aléatoire et tri. Il télécharge les paires clé-valeur groupées sur l'ordinateur local, sur lequel le réducteur est exécuté. Les paires clé-valeur individuelles sont triées par clé dans une liste de données plus grande. La liste de données regroupe les clés équivalentes afin que leurs valeurs puissent être facilement itérées dans la tâche Reducer.

  • Reducer- Le réducteur prend les données groupées de paires clé-valeur en entrée et exécute une fonction de réduction sur chacune d'elles. Ici, les données peuvent être agrégées, filtrées et combinées de différentes manières, et cela nécessite un large éventail de traitements. Une fois l'exécution terminée, il donne zéro ou plusieurs paires clé-valeur à l'étape finale.

  • Output Phase - Dans la phase de sortie, nous avons un formateur de sortie qui traduit les paires clé-valeur finales de la fonction Reducer et les écrit dans un fichier à l'aide d'un enregistreur d'enregistrement.

Essayons de comprendre les deux tâches Map & f Réduire à l'aide d'un petit diagramme -

MapReduce-Exemple

Prenons un exemple du monde réel pour comprendre la puissance de MapReduce. Twitter reçoit environ 500 millions de tweets par jour, soit près de 3000 tweets par seconde. L'illustration suivante montre comment Tweeter gère ses tweets à l'aide de MapReduce.

Comme le montre l'illustration, l'algorithme MapReduce effectue les actions suivantes -

  • Tokenize - Tokenise les tweets en cartes de jetons et les écrit sous forme de paires clé-valeur.

  • Filter - Filtre les mots indésirables des cartes de jetons et écrit les cartes filtrées sous forme de paires clé-valeur.

  • Count - Génère un compteur de jetons par mot.

  • Aggregate Counters - Prépare un agrégat de valeurs de compteur similaires en petites unités gérables.