Mapréduce

Définition - Que signifie MapReduce?

MapReduce est un modèle de programmation introduit par Google pour traiter et générer 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 framework MapReduce bénéfique car les routines de bibliothèque peuvent être utilisées pour créer des programmes parallèles sans se soucier de la communication infra-cluster, de la surveillance des tâches ou des processus de gestion des échecs.

MapReduce fonctionne sur un grand cluster de machines courantes et est hautement évolutif. Il a plusieurs formes d'implémentation fournies par plusieurs langages de programmation, comme Java, C # et C ++.

Definir Tech explique MapReduce

Le framework MapReduce comprend deux parties:

  1. Une fonction appelée "Map", qui permet à différents points du cluster distribué de distribuer leur travail
  2. 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 framework MapReduce est sa tolérance aux pannes, où des rapports périodiques de chaque nœud du cluster sont attendus lorsque le travail est 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 est resté silencieux pendant un intervalle plus long que prévu, le nœud principal exécute le processus de réaffectation à la tâche gelée / retardée.

Le framework MapReduce est inspiré des fonctions "Map" et "Reduce" utilisées dans la 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 jobs MapReduce sont exécutés sur les clusters de Google. Les programmes sont automatiquement parallélisés et exécutés sur un grand cluster de machines courantes. 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 machine et de la gestion des communications entre les machines requises. Les programmeurs sans aucune 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 le grep distribué, le tri distribué, l'inversion de lien-graphe Web, les statistiques du journal d'accès Web, le regroupement de documents, l'apprentissage automatique et la traduction automatique statistique.