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 cluster. Le traitement se déroule en deux phases. La phase de mappage traite les données d'entrée, qui sont transformées en paires clé-valeur. Le résultat du processus de mappage est ensuite transmis au processus de réduction, qui compresse les enregistrements d'entrée.
Pourquoi MapReduce est-il important ?
Si vous avez besoin de traiter rapidement et à moindre coût des pétaoctets de données, vous avez besoin de MapReduce et de Hadoop. Aujourd'hui, Hadoop est presque synonyme d'utilisation du Big Data, car il permet aux entreprises d'utiliser des milliers de processeurs standard pour traiter jeux de données vastes jeux de données.
MapReduce est né de la nécessité pour les systèmes de traiter efficacement des ensembles de données pouvant atteindre plusieurs pétaoctets. 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 composant central de son architecture afin de traiter une grande variété de données de manière évolutif flexible.
MapReduce peut être utilisé dans des langages courants, notamment Python, C++ et Java.
Exécution d'une opération MapReduce
Pour effectuer un MapReduce sur un jeu de données utiliser deux méthodes principales : l'interface Mapper et l'interface Reducer.
Le Mapper
Les tâches qui transforment les enregistrements d'entrée en enregistrements intermédiaires sont appelées « Maps ». Une paire d'entrée peut être mappée à zéro ou plusieurs sorties (enregistrements intermédiaires), qui peuvent correspondre à un type de données issu de la paire de valeurs d'entrée. Le processus de mappage peut être exécuté en parallèle, avec une tâche fichier de données d'entrée ; ainsi, si un jeu de données divisé en dix fichiers distincts, dix tâches de mappage seront créées.
Les applications peuvent utiliser un compteur intégré pour obtenir des statistiques sur le fonctionnement. Les données de sortie peuvent être regroupées, triées et partitionnées avant d'être transmises aux tâches Reducer. Il y aura une tâche Reducer tâche partition, à moins que le développeur ne décide d'effectuer une agrégation à l'aide d'un combinateur afin de contrôler le volume de données à ce stade.
Les enregistrements de sortie intermédiaires triés sont au format (longueur_clé, clé, longueur_valeur, valeur). Les applications peuvent spécifier un codec de compression dans la configuration.
Parallélisation des tâches de mappage
Le nombre de tâches Map exécutées en parallèle dépend du nombre total de blocs de fichiers et du nombre de nœuds de traitement par nœud, ce qui peut atteindre plusieurs milliers pour un fichier de plusieurs téraoctets.
La méthode « Réduire »
Les valeurs intermédiaires générées par la méthode Mapper peuvent être traitées par la méthode Reduce, qui produit un nombre réduit de valeurs partageant une même clé. Le nombre de tâches Reducer est configurable.
La méthode Reducer suit une série d'étapes qui commencent par un mélange et un tri, effectués simultanément, suivis de l'étape de réduction.
L'étape « Shuffle » consiste pour le framework à transférer un flux de sortie donné du Mapper vers le job Reducer. Lors de l'étape « Sort », le framework regroupe les sorties du Mapper par valeur de clé. Les tris par clé secondaire 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.
Le résultat du réducteur n'est pas trié. Il est possible de rendre la réduction facultative en définissant le nombre de tâches sur zéro.
Partitionnement
Les résultats intermédiaires de la carte peuvent être partitionnés à 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 Mapper et le Reducer peuvent tous deux utiliser la fonction Counter pour générer des statistiques.
Les avantages de MapReduce
Voici un résumé des principaux avantages de MapReduce :
- évolutif hautement évolutif pour compresser de grands volumes de données.
- Propose des ressources économiques en libre accès.
- Prend en charge plusieurs formats de données.
- La bibliothèque MapReduce est fournie en standard avec la distribution Apache Hadoop.
- Facile à utiliser pour les développeurs.
Actian et la plateforme d'intelligence des données
La plateformeActianData Intelligencea été spécialement conçue pour aider les organisations à unifier, gérer et comprendre leurs données dans des environnements hybrides. Elle regroupe métadonnées , gouvernance, la traçabilité, le contrôle de la qualité et l'automatisation au sein d'une seule et même plateforme. Cela permet aux équipes de savoir d'où proviennent les données, comment elles sont utilisées et si elles répondent aux exigences internes et externes.
Grâce à son interface centralisée, Actian offre insight en temps réel insight les structures et les flux de données, ce qui facilite l'application des politiques, la résolution des problèmes et la collaboration entre les services. La plateforme aide également à replacer les données dans leur contexte métier, permettant ainsi aux équipes de les exploiter de manière plus efficace et responsable. La plateforme Actian est conçue pour s'adapter à l'évolution des écosystèmes de données, garantissant une utilisation cohérente, intelligente et sécurisée des données à l'échelle de l'entreprise.Demandez votre démonstration personnalisée.
FAQ
Apache MapReduce est un projet open source conçu pour générer et stocker de grands ensembles de données sur un système informatique en cluster, en deux phases : une phase de mappage qui transforme les données d'entrée en paires clé-valeur, et une phase de réduction qui compresse ces enregistrements.
MapReduce permet un traitement rapide et économique de pétaoctets de données en donnant aux entreprises la possibilité d'utiliser des milliers de processeurs standard pour traiter jeux de données grands jeux de données manière évolutif flexible.
Le Mapper transforme les enregistrements d'entrée en paires clé-valeur intermédiaires, une paire d'entrée pouvant correspondre à zéro ou plusieurs enregistrements de sortie. Les tâches de mappage peuvent s'exécuter en parallèle, à raison d'une tâche de traitement tâche fichier de données d'entrée.
Le Reducer prend les valeurs intermédiaires générées par le Mapper et crée un nombre réduit de valeurs partageant une même clé, en utilisant des étapes de mélange, de tri et de réduction pour traiter les entrées regroupées.
MapReduce peut être utilisé dans des langages courants tels que Python, C++ et Java.
Le nombre de tâches Map exécutées en parallèle dépend du nombre total de blocs de fichiers et de nœuds de traitement par nœud, ce qui peut atteindre plusieurs milliers pour des fichiers de plusieurs téraoctets, offrant ainsi évolutivité considérable.
MapReduce est un composant essentiel de l'architecture du système de fichiers distribué Hadoop (HDFS) et est fourni en standard dans la distribution Apache Hadoop.
MapReduce offre une compression évolutif hautement évolutif , les avantages de l'open source, support nombreux formats de données, une grande facilité d'utilisation pour les développeurs et une intégration standard avec Apache Hadoop.