Table des matières:
- Préparez le Big Data
- Lancez la grande carte de données
- Réduire et combiner pour les données volumineuses
Vidéo: Palestra Virtual sobre Big Data (Hadoop, Map Reduce, HDFS) 2024
Pour bien comprendre les capacités de Hadoop MapReduce, il est important de faire la différence entre MapReduce (l'algorithme) et implémentation de MapReduce. Hadoop MapReduce est une implémentation de l'algorithme développé et maintenu par le projet Apache Hadoop.
Il est utile de considérer cette implémentation comme un moteur MapReduce, car c'est exactement comme cela que cela fonctionne. Vous fournissez l'entrée (carburant), le moteur convertit l'entrée en sortie rapidement et efficacement, et vous obtenez les réponses dont vous avez besoin.
Hadoop MapReduce comprend plusieurs étapes, chacune avec un ensemble important d'opérations permettant d'atteindre votre objectif d'obtenir les réponses dont vous avez besoin à partir des données volumineuses. Le processus commence par une demande de l'utilisateur pour exécuter un programme MapReduce et continue jusqu'à ce que les résultats soient réécrits dans le système HDFS.
HDFS et MapReduce effectuent leur travail sur les nœuds d'un cluster hébergé sur des racks de serveurs de marchandises. Pour simplifier la discussion, le diagramme montre seulement deux nœuds.
Préparez le Big Data
Lorsqu'un client demande l'exécution d'un programme MapReduce, la première étape consiste à localiser et à lire le fichier d'entrée contenant les données brutes. Le format de fichier est complètement arbitraire, mais les données doivent être converties en quelque chose que le programme peut traiter. C'est la fonction de InputFormat et RecordReader. InputFormat décide de la façon dont le fichier va être fragmenté en plusieurs parties pour le traitement en utilisant une fonction appelée InputSplit.
Il attribue ensuite un RecordReader pour transformer les données brutes en vue de leur traitement par la carte. Plusieurs types de RecordReader sont fournis avec Hadoop, offrant une grande variété d'options de conversion. Cette fonctionnalité est l'une des façons qu'Hadoop gère la grande variété de types de données trouvés dans les problèmes de big data.
Lancez la grande carte de données
Vos données sont maintenant sous une forme acceptable pour la carte. Pour chaque paire d'entrées, une instance distincte de map est appelée pour traiter les données. Mais que fait-il avec la sortie traitée, et comment pouvez-vous garder la trace d'eux?
La carte a deux capacités supplémentaires pour répondre aux questions. Comme map et reduce doivent travailler ensemble pour traiter vos données, le programme doit collecter la sortie des mappeurs indépendants et la transmettre aux réducteurs. Cette tâche est effectuée par un OutputCollector. Une fonction Reporter fournit également des informations collectées à partir des tâches de carte afin que vous sachiez quand ou si les tâches de la map sont terminées.
Tout ce travail est effectué simultanément sur plusieurs nœuds du cluster Hadoop.Vous pouvez avoir des cas où la sortie de certains processus de mappage doit être accumulée avant que les réducteurs puissent commencer. Ou, certains des résultats intermédiaires peuvent devoir être traités avant la réduction.
De plus, une partie de cette sortie peut être sur un noeud différent du noeud où les réducteurs pour cette sortie spécifique seront exécutés. La collecte et le réarrangement des résultats intermédiaires sont effectués par un partitionneur et un tri. Les tâches de la carte fourniront les résultats à une partition spécifique en tant qu'entrées pour les tâches de réduction.
Une fois toutes les tâches de la map terminées, les résultats intermédiaires sont rassemblés dans la partition et un brassage se produit, triant la sortie pour un traitement optimal en réduisant.
Réduire et combiner pour les données volumineuses
Pour chaque paire de sorties, reduce est appelée pour effectuer sa tâche. De manière similaire à la carte, réduire rassemble sa sortie pendant que toutes les tâches sont en cours de traitement. Réduire ne peut pas commencer tant que tout le mappage n'est pas terminé. La sortie de réduire est également une clé et une valeur. Bien que cela soit nécessaire pour réduire son travail, il se peut que ce ne soit pas le format de sortie le plus efficace pour votre application.
Hadoop fournit une fonctionnalité OutputFormat, qui fonctionne très bien comme InputFormat. OutputFormat prend la paire clé-valeur et organise la sortie pour l'écriture sur HDFS. La dernière tâche consiste à écrire les données dans HDFS. Ceci est effectué par RecordWriter, et il fonctionne de manière similaire à RecordReader sauf en inverse. Il prend les données OutputFormat et les écrit dans HDFS sous la forme nécessaire pour les exigences du programme.
La coordination de toutes ces activités était gérée dans les versions antérieures de Hadoop par un planificateur de travaux. Ce planificateur était rudimentaire et, à mesure que le mélange des tâches changeait et grandissait, il était clair qu'une approche différente était nécessaire. La principale lacune de l'ancien planificateur était le manque de gestion des ressources. La dernière version de Hadoop a cette nouvelle capacité.
Hadoop MapReduce est le cœur du système Hadoop. Il fournit toutes les fonctionnalités dont vous avez besoin pour décomposer les gros volumes de données en blocs gérables, traiter les données en parallèle sur votre cluster distribué, puis rendre les données disponibles pour la consommation de l'utilisateur ou pour un traitement supplémentaire. Et tout cela fonctionne de manière très résiliente et tolérante aux pannes. Ce n'est que le début.