MapReduce dans Hadoop : phases, entrées et sorties, fonctions et avantages

Publié: 2020-12-24

Hadoop MapReduce est un modèle de programmation et un framework logiciel utilisé pour écrire des applications qui traitent de grandes quantités de données. Il y a deux phases dans le programme MapReduce, Map et Reduce.

La tâche Map comprend le fractionnement et le mappage des données en prenant un ensemble de données et en le convertissant en un autre ensemble de données, où les éléments individuels sont décomposés en tuples, c'est-à-dire des paires clé/valeur. Après quoi, la tâche Réduire mélange et réduit les données, ce qui signifie qu'elle combine les tuples de données en fonction de la clé et modifie la valeur de la clé en conséquence.

Dans le framework Hadoop, le modèle MapReduce est le composant central du traitement des données. En utilisant ce modèle, il est très facile de mettre à l'échelle une application pour qu'elle s'exécute sur des centaines, des milliers et bien d'autres machines dans un cluster en ne faisant qu'un changement de configuration. C'est aussi parce que les programmes du modèle dans le cloud computing sont de nature parallèle. Hadoop a la capacité d'exécuter MapReduce dans de nombreux langages tels que Java, Ruby, Python et C++. En savoir plus sur l'architecture mapreduce.

Table des matières

Entrées et sorties

Le modèle MapReduce fonctionne sur des paires <clé, valeur>. Il considère l'entrée des travaux comme un ensemble de paires <clé, valeur> et produit un ensemble différent de paires <clé, valeur> comme sortie des travaux. L'entrée de données est prise en charge par deux classes dans ce cadre, à savoir InputFormat et RecordReader.

Le premier est consulté pour déterminer comment les données d'entrée doivent être partitionnées pour les tâches cartographiques, tandis que le second lit les données des entrées. Pour la sortie de données, il existe également deux classes, OutputFormat et RecordWriter. La première classe effectue une validation de base des propriétés du puits de données et la deuxième classe est utilisée pour écrire chaque sortie du réducteur dans le puits de données.

Quelles sont les phases de MapReduce ?

Dans MapReduce, une donnée passe par les phases suivantes.

Divisions d' entrée : une entrée dans le modèle MapReduce est divisée en petites parties de taille fixe appelées divisions d'entrée. Cette partie de l'entrée est consommée par une seule carte. Les données d'entrée sont généralement un fichier ou un répertoire stocké dans le HDFS.

Mappage : il s'agit de la première phase de l'exécution du programme map-reduce où les données de chaque fractionnement sont transmises ligne par ligne à une fonction de mappage pour les traiter et produire les valeurs de sortie.

Remaniement : il s'agit d'une partie de la phase de sortie du mappage où les enregistrements pertinents sont consolidés à partir de la sortie. Il consiste à fusionner et trier. Ainsi, toutes les paires clé-valeur qui ont les mêmes clés sont combinées. Lors du tri, les entrées de l'étape de fusion sont prises et triées. Il renvoie des paires clé-valeur, triant la sortie.

Réduire : toutes les valeurs de la phase de brassage sont combinées et une seule valeur de sortie est renvoyée. Ainsi, résumant l'ensemble de données.

Lisez aussi: Questions et réponses de l'entretien Mapreduce

Comment MapReduce organise-t-il le travail ?

Hadoop divise une tâche en deux parties, les tâches de mappage qui incluent les fractionnements et le mappage, et les tâches de réduction qui incluent le brassage et la réduction. Ceux-ci ont été mentionnés dans les phases de la section ci-dessus. L'exécution de ces tâches est contrôlée par deux entités appelées JobTracker et Multiple Task tracker.

Avec chaque travail soumis pour exécution, il y a un JobTracker qui réside sur le NameNode et plusieurs suivis de tâches qui résident sur le DataNode. Un travail est divisé en plusieurs tâches qui s'exécutent sur plusieurs nœuds de données dans le cluster. Le JobTracker coordonne l'activité en planifiant les tâches à exécuter sur différents nœuds de données.

Le suivi des tâches s'occupe de l'exécution des tâches individuelles. Il envoie également le rapport d'avancement au JobTracker. Périodiquement, il envoie un signal au JobTracker pour notifier l'état actuel du système. En cas d'échec d'une tâche, le JobTracker la replanifie sur un autre outil de suivi des tâches.

Avantages de MapReduce

Il y a un certain nombre d'avantages pour les applications qui utilisent ce modèle. Ceux-ci sont

  • – Les mégadonnées peuvent être facilement manipulées.
  • – Les jeux de données peuvent être traités en parallèle.
  • – Tous les types de données telles que structurées, non structurées et semi-structurées peuvent être facilement traitées.
  • - Une grande évolutivité est fournie.
  • – Le comptage des occurrences de mots est facile et ces applications peuvent avoir une collecte massive de données.
  • – De grands échantillons de répondants peuvent être consultés rapidement.
  • – En analyse de données, un outil générique peut être utilisé pour rechercher des outils.
  • – Le temps d'équilibrage de charge est offert dans les grands clusters.
  • – Le processus d'extraction de contextes d'emplacements d'utilisateurs, de situations, etc. est facilement possible.
  • – De bonnes performances de généralisation et de convergence sont assurées pour ces applications.

Doit lire : Mapreduce contre Apache Spark

Conclusion

Nous avons décrit MapReduce dans Hadoop en détail. Nous avons également fourni une brève description du cadre ainsi que les définitions de Map et Reduce dans l'introduction. Les définitions des différents termes utilisés dans ce modèle ont été données avec des détails sur les entrées et les sorties.

Une explication détaillée des différentes phases impliquées dans le cadre MapReduce a illustré en détail comment le travail est organisé. La liste des avantages de l'utilisation de MapReduce pour les applications donne une image claire de son utilisation et de sa pertinence

Si vous souhaitez en savoir plus sur le Big Data, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, pratique pratique ateliers, plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Menez la révolution technologique axée sur les données

Programme de certificat avancé en Big Data de l'IIIT Bangalore