Table des matières:
Définition - Que signifie MapReduce?
MapReduce est un modèle de programmation introduit par Google pour le traitement et la génération de grands ensembles de données sur des grappes d'ordinateurs.
Google a d'abord formulé le cadre dans le but de servir l'indexation des pages Web de Google, et le nouveau cadre a remplacé les algorithmes d'indexation antérieurs. Les développeurs débutants trouvent le cadre MapReduce bénéfique car les routines de bibliothèque peuvent être utilisées pour créer des programmes parallèles sans aucun souci de communication infra-cluster, de surveillance des tâches ou de traitement des pannes.
MapReduce fonctionne sur un grand cluster de machines de base et est hautement évolutif. Il a plusieurs formes d'implémentation fournies par plusieurs langages de programmation, comme Java, C # et C ++.
Techopedia explique MapReduce
Le framework MapReduce comprend deux parties:
- Une fonction appelée «Map», qui permet à différents points du cluster distribué de distribuer leur travail
- Une fonction appelée "Réduire", qui est conçue pour réduire la forme finale des résultats des clusters en une seule sortie
Le principal avantage du cadre MapReduce est sa tolérance aux pannes, où des rapports périodiques de chaque nœud du cluster sont attendus une fois le travail terminé.
Une tâche est transférée d'un nœud à un autre. Si le nœud maître remarque qu'un nœud a été silencieux pendant un intervalle plus long que prévu, le nœud principal effectue le processus de réaffectation à la tâche gelée / retardée.
Le framework MapReduce est inspiré des fonctions "Map" et "Reduce" utilisées en programmation fonctionnelle. Le traitement informatique se produit sur les données stockées dans un système de fichiers ou dans une base de données, qui prend un ensemble de valeurs de clé d'entrée et produit un ensemble de valeurs de clé de sortie.
Chaque jour, de nombreux programmes MapReduce et tâches MapReduce sont exécutés sur les clusters de Google. Les programmes sont automatiquement parallélisés et exécutés sur un grand groupe de machines de base. Le système d'exécution traite du partitionnement des données d'entrée, de la planification de l'exécution du programme sur un ensemble de machines, de la gestion des pannes de machines et de la gestion des communications intermachines requises. Les programmeurs sans expérience des systèmes parallèles et distribués peuvent facilement utiliser les ressources d'un grand système distribué.
MapReduce est utilisé dans grep distribué, tri distribué, inversion de graphique de lien Web, statistiques de journal d'accès Web, regroupement de documents, apprentissage automatique et traduction automatique statistique.
