Qu'est-ce que MapReduce?
Le framework de programmation MapReduce est utilisé pour effectuer un traitement distribué et parallèle avec de grands ensembles de données dans un environnement distribué. Map and Reduce sont les deux tâches distinctes d'un programme de réduction de carte. Au début de la phase de mappage, les données sont lues et des paires clé-valeur sont générées à partir de celles-ci. Ensuite, ces paires clé-valeur sont introduites dans une tâche de réduction qui agrège les données de paire clé-valeur dans le plus petit ensemble de valeurs produisant la sortie finale. Ainsi, une tâche de réduction est toujours implémentée une fois la tâche de mappage terminée. Il est très facile de faire évoluer le traitement des données sur plusieurs nœuds de calcul.
Il y a notamment trois étapes dans le programme:
- Étape de la carte
- Étape de lecture aléatoire
- Réduire le stade
Exemple :
Problème Wordcount-
Supposons ci-dessous les données d'entrée:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
1. Les données ci-dessus sont divisées en trois divisions d'entrée comme ci-dessous:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
2. Ensuite, ces données sont introduites dans la phase suivante appelée phase de cartographie.
Ainsi, pour la première ligne (Mike Jon Jake), nous avons 3 paires clé-valeur - Mike, 1; Jon, 1; Jake, 1.
Voici le résultat de la phase de cartographie:
- Mike, 1
Jon, 1
Jake, 1 - Paul, 1
Paul, 1
Jake, 1 - Mike, 1
Paul, 1
Jon, 1
3. Les données ci-dessus sont ensuite introduites dans la phase suivante appelée phase de tri et de brassage.
Dans cette phase, les données sont regroupées en clés uniques et triées. Voici le résultat en phase de tri et de brassage:
- Jake, (1, 1)
- Jon, (1, 1)
- Mike, (1, 1)
- Paul, (1, 1, 1)
4. Les données ci-dessus sont ensuite introduites dans la phase suivante appelée la phase de réduction.
Ici, toutes les valeurs clés sont agrégées et le nombre de 1 est compté. Voici le résultat en phase de réduction:
- Jake, 2
- Jon, 2
- Mike, 2
- Paul, 3
Avantages de MapReduce:
Ici, nous apprenons certains avantages importants du cadre de programmation MapReduce,
1. Évolutivité
Hadoop en tant que plate-forme hautement évolutive et principalement en raison de sa capacité à stocker et à distribuer de grands ensembles de données sur de nombreux serveurs. Les serveurs utilisés ici sont assez peu coûteux et peuvent fonctionner en parallèle. La puissance de traitement du système peut être améliorée avec l'ajout de serveurs supplémentaires. Les systèmes de gestion de bases de données relationnelles traditionnels ou SGBDR n'étaient pas en mesure d'évoluer pour traiter d'énormes ensembles de données.
2. Flexibilité
Le modèle de programmation Hadoop MapReduce offre la flexibilité de traiter la structure ou les données non structurées par diverses organisations commerciales qui peuvent utiliser les données et opérer sur différents types de données. Ainsi, ils peuvent générer une valeur commerciale à partir de ces données qui sont significatives et utiles pour les organisations commerciales à des fins d'analyse. Quelle que soit la source de données, qu'il s'agisse de médias sociaux, de flux de clics, d'e-mails, etc. Hadoop prend en charge de nombreuses langues utilisées pour le traitement des données. Parallèlement à tout cela, la programmation Hadoop MapReduce permet de nombreuses applications telles que l'analyse marketing, le système de recommandation, l'entrepôt de données et la détection de fraude.
3. Sécurité et authentification
Si une personne étrangère a accès à toutes les données de l'organisation et peut manipuler plusieurs pétaoctets de données, cela peut faire beaucoup de mal en termes de transactions commerciales en fonctionnement avec l'organisation commerciale. Ce risque est traité par le modèle de programmation MapReduce en travaillant avec hdfs et HBase qui permet une sécurité élevée permettant uniquement à l'utilisateur approuvé d'opérer sur les données stockées dans le système.
4. Solution rentable
Un tel système est hautement évolutif et constitue une solution très rentable pour un modèle d'entreprise qui a besoin de stocker des données qui croît de façon exponentielle en fonction des besoins actuels. Dans le cas des anciens systèmes de gestion de bases de données relationnelles traditionnels, le traitement des données n'était pas aussi simple qu'avec le système Hadoop en termes d'évolutivité. Dans de tels cas, l'entreprise a été contrainte de réduire la taille des données et de poursuivre la mise en œuvre d'une classification basée sur des hypothèses sur la valeur de certaines données pour l'organisation et donc de supprimer les données brutes. Ici, l'architecture scale-out Hadoop avec la programmation MapReduce vient à la rescousse.
5. Rapide
Le système de fichiers distribué Hadoop HDFS est une fonctionnalité clé utilisée dans Hadoop qui implémente essentiellement un système de cartographie pour localiser les données dans un cluster. La programmation MapReduce est l'outil utilisé pour le traitement des données et se trouve également dans le même serveur permettant un traitement plus rapide des données. Hadoop MapReduce traite de gros volumes de données non structurées ou semi-structurées en moins de temps.
6. Un modèle simple de programmation
La programmation de MapReduce est basée sur un modèle de programmation très simple qui permet essentiellement aux programmeurs de développer un programme MapReduce qui peut gérer beaucoup plus de tâches avec plus de facilité et d'efficacité. Le modèle de programmation MapReduce est écrit en utilisant le langage Java est très populaire et très facile à apprendre. Il est facile pour les gens d'apprendre la programmation Java et de concevoir un modèle de traitement des données qui répond à leurs besoins commerciaux.
7. Traitement parallèle
Le modèle de programmation divise les tâches d'une manière qui permet l'exécution de la tâche indépendante en parallèle. Par conséquent, ce traitement parallèle permet aux processus d'assumer plus facilement chacune des tâches, ce qui permet d'exécuter le programme en beaucoup moins de temps.
8. Disponibilité et résilience
Le modèle de programmation Hadoop MapReduce traite les données en envoyant les données à un nœud individuel ainsi qu'en transmettant le même ensemble de données aux autres nœuds résidant dans le réseau. Par conséquent, en cas de défaillance dans un nœud particulier, la même copie de données est toujours disponible sur les autres nœuds, ce qui peut être utilisé chaque fois que cela est nécessaire pour garantir la disponibilité des données.
De cette façon, Hadoop est tolérant aux pannes. Il s'agit d'une fonctionnalité unique offerte dans Hadoop MapReduce qui permet de reconnaître rapidement le défaut et d'appliquer une solution rapide pour une solution de récupération automatique.
Il existe de nombreuses entreprises à travers le monde qui utilisent la réduction de carte comme Facebook, Yahoo, etc.
Conclusion - Qu'est-ce que MapReduce
La réduction de carte a une grande capacité en matière de traitement de données volumineuses par rapport aux systèmes SGBDR traditionnels. De nombreuses organisations ont déjà réalisé son potentiel et se tournent vers cette nouvelle technologie. De toute évidence, map-Reduce a beaucoup de temps à parcourir dans une grande plateforme de traitement de données.
Articles recommandés
Ceci a été un guide sur Qu'est-ce que MapReduce. Ici, nous avons discuté du concept de base, des exemples et des avantages de MapReduce. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -
- Qu'est-ce que JavaScript?
- Questions d'entretiens chez MapReduce
- Qu'est-ce que Python
- Fonctionnement de MapReduce
- Qu'est-ce que le Big Data et Hadoop