MapReduce

Apache MapReduce est un projet open-source conçu pour générer et stocker de grands ensembles de données. Le système MapReduce fonctionne sur un système informatique en grappe. Le traitement se compose de deux phases. La phase de mappeur traite les données d'entrée qui sont transformées en paires clé-valeur. La sortie du processus de mapper alimente ensuite le processus de reducer, qui compresse ses enregistrements d'entrée.
Pourquoi MapReduce est-il important ?
Si vous avez besoin d'un traitement rapide et économique de pétaoctets de données, vous avez besoin de MapReduce et de Hadoop. Aujourd'hui, Hadoop est presque synonyme d'utilisation de Big Data car il permet aux organisations d'utiliser des milliers de processeurs de base pour traiter de grands ensembles de données.
MapReduce est né de la nécessité pour les systèmes de traiter efficacement des ensembles de données pouvant atteindre le pétaoctet. Les données se présentent sous de nombreux formats qui doivent être traités, stockés et récupérés. Le système de fichiers distribués Hadoop (HDFS) utilise MapReduce comme élément central de son architecture pour traiter une grande variété de données de manière évolutif et flexible.
MapReduce peut être utilisé dans les langages les plus courants, notamment Python, C++ et Java.
Exécution d'une opération MapReduce
L'exécution d'une opération MapReduce sur un ensemble de données nécessite l'utilisation de deux méthodes principales : l'interface Mapper et l'interface Reducer.
Le cartographe
Les tâches qui transforment les enregistrements d'entrée en enregistrements intermédiaires sont appelées "cartes". Une paire d'entrées peut correspondre à zéro ou plusieurs sorties (enregistrements intermédiaires), qui peuvent être un type de données de la paire de valeurs d'entrée. Le processus Map peut être exécuté en parallèle avec une tâche travailleur par fichier de données d'entrée. Ainsi, si un jeu de données est divisé en dix fichiers distincts, dix tâches Map seront créées.
Les applications peuvent utiliser un compteur intégré pour obtenir des statistiques sur l'opération. La sortie peut être groupée, triée et partitionnée avant d'être transmise aux tâches du réducteur. Il y aura une tâche Reducer par partition à moins que le développeur ne décide d'effectuer une agrégation à l'aide d'un combinateur pour contrôler le volume de données à ce stade.
Les enregistrements intermédiaires triés en sortie sont au format (clé-len, clé, valeur-len, valeur). Les applications peuvent spécifier un codec de compression dans la configuration.
Paralléliser les tâches de cartographie
Le nombre de tâches Map parallèles dépend du nombre total de blocs de fichiers et du nombre de travailleurs par nœud, qui peut s'élever à des milliers pour un fichier de plusieurs téraoctets.
La méthode de réduction
Les valeurs intermédiaires produites par la méthode Mapper peuvent être exécutées par la méthode Reduce, qui crée un plus petit nombre de valeurs partageant une clé. Le nombre de tâches de réduction est configurable.
La méthode Reducer utilise une série d'étapes qui commencent par un mélange et un tri, qui se produisent simultanément, suivis par l'étape de réduction.
L'étape "Shuffle" consiste pour le framework à récupérer un flux de sortie du Mapper donné pour le travail du Reducer. Lors de l'étape de tri, la structure regroupe les données de sortie du mappeur par valeur de clé. Les tris de clés secondaires sont configurables.
The Reduce method is called for every <key, (list of values)> pair in the grouped inputs, which is eventually written to the file system in an unsorted form.
La sortie du réducteur n'est pas triée. La réduction peut être rendue facultative en fixant le nombre de tâches à zéro.
Cloisonnement
Les sorties intermédiaires de la carte peuvent être partitionnées à l'aide d'une fonction de hachage qui utilise une partie de la valeur de la clé. Le nombre de partitions détermine le nombre de tâches réduites.
Le mappeur et le réducteur peuvent tous deux utiliser la fonction de comptage pour établir des statistiques.
Les avantages de MapReduce
Voici un résumé des principaux avantages de MapReduce :
- Un moyen très évolutif de compresser des données volumineuses.
- Fournit des informations économiques en libre accès.
- Prise en charge de plusieurs formats de données.
- La bibliothèque MapReduce fait partie intégrante de la distribution Apache Hadoop.
- Facile à utiliser pour les développeurs.
plateforme de données Actian et Hadoop
La plateforme de données Actian est conçue pour évoluer dans un environnement Hadoop, permettant le parallélisme entre les nœuds et l'accès à tous les formats de données pris en charge par Apache Spark. La support Hadoop est la clé de la prise en charge d'opérations évolutif sur un cluster utilisant des données partitionnées auxquelles on accède à l'aide d'Apache Spark. Actian fournit également un accès évolutif aux sources de données en continu telles que Azure Blob Storage ou GCS.