Vidéo: MapReduce - Fonction map() en détails 2024
MapReduce est un paradigme de programmation conçu pour permettre le traitement distribué parallèle de grands ensembles de données, en les convertissant en ensembles de tuples, puis en combinant et en réduisant ces tuples en plus petits ensembles de tuples. En termes simples, MapReduce a été conçu pour prendre de grandes quantités de données et utiliser l'informatique répartie parallèle pour transformer les grandes données en données de petite ou de taille normale.
Le traitement distribué parallèle fait référence à un cadre puissant où les volumes massifs de données sont traités très rapidement en répartissant les tâches de traitement entre les clusters de serveurs de base. En ce qui concerne MapReduce, tuples font référence à des paires clé-valeur par lesquelles les données sont groupées, triées et traitées.
Les travaux MapReduce fonctionnent via la carte et réduisent les séquences d'opérations de traitement sur un ensemble réparti de serveurs. Dans la tâche de carte , vous déléguez vos données à des paires clé-valeur, les transformez et les filtrez. Ensuite, vous affectez les données aux nœuds pour le traitement.
Dans la tâche de réduction , vous regroupez ces données dans des ensembles de données de plus petite taille. Les données de l'étape de réduction sont transformées en un format de valeur-clé standard - où la clé agit comme identificateur d'enregistrement et la valeur est la valeur identifiée par la clé. Les nœuds de calcul des clusters traitent la carte et réduisent les tâches définies par l'utilisateur. Ce travail est effectué selon les deux étapes suivantes:
-
Mappez les données.
Les données entrantes doivent d'abord être déléguées dans des paires clé-valeur et divisées en fragments, qui sont ensuite affectés à des tâches de mappage. Chaque cluster informatique - un groupe de nœuds connectés entre eux et exécutant une tâche informatique partagée - est affecté à un certain nombre de tâches cartographiques, qui sont ensuite réparties entre ses nœuds.
Lors du traitement des paires clé-valeur, des paires clé-valeur intermédiaires sont générées. Les paires clé-valeur intermédiaires sont triées par leurs valeurs de clé, et cette liste est divisée en un nouvel ensemble de fragments. Quelque soit le nombre que vous avez pour ces nouveaux fragments, ce sera le même que le nombre de tâches de réduction.
-
Réduire les données.
Chaque tâche de réduction est associée à un fragment. La tâche de réduction traite simplement le fragment et produit une sortie, qui est également une paire clé-valeur. Les tâches de réduction sont également réparties entre les différents nœuds du cluster. Une fois la tâche terminée, la sortie finale est écrite sur un système de fichiers.
En bref, vous pouvez réduire rapidement et efficacement le volume, la vélocité et la variété des données en utilisant map et réduire les tâches pour marquer vos données par des paires (clé, valeur), puis réduire ces paires en ensembles de données plus petits via opérations d'agrégation - opérations qui combinent plusieurs valeurs d'un ensemble de données en une seule valeur.Un diagramme de l'architecture MapReduce peut être trouvé ici.
Si vos données ne se prêtent pas à être étiquetées et traitées via les clés, les valeurs et l'agrégation, la correspondance et la réduction de généralement ne conviennent pas à vos besoins.
Si vous utilisez MapReduce dans le cadre d'une solution Hadoop, la sortie finale est écrite sur le Hadoop Distributed File System (HDFS). HDFS est un système de fichiers qui inclut des grappes de serveurs de produits de base utilisés pour stocker des données volumineuses. HDFS rend le traitement et le stockage de gros volumes de données financièrement réalisables en répartissant les tâches de stockage entre des grappes de serveurs de produits bon marché.