Hadoop MapReduce pour Big Data

Pour comprendre pleinement les capacités de Hadoop MapReduce, il est important de différencier entre MapReduce

Sommaire

(l'algorithme) et une mise en œuvre de MapReduce. Hadoop MapReduce est une implémentation de l'algorithme développé et maintenu par le projet Hadoop.

Il est utile de penser à cette mise en œuvre en tant que MapReduce moteur, parce que ce est exactement comment il fonctionne. Vous fournissez entrée (carburant), le moteur convertit l'entrée en production rapidement et efficacement, et vous obtenez les réponses dont vous avez besoin.

Hadoop MapReduce comprend plusieurs étapes, chacune avec un ensemble important d'actions contribuant à la rendre à votre objectif d'obtenir les réponses dont vous avez besoin de grands volumes de données. Le processus commence par une demande de l'utilisateur à exécuter un programme de MapReduce et continue jusqu'à ce que les résultats sont écrits dans le HDFS.

image0.jpg

HDFS et MapReduce effectuent leur travail sur les noeuds d'un cluster hébergé sur racks de serveurs des produits de base. Pour simplifier la discussion, le diagramme montre seulement deux noeuds.

Obtenez les grandes données prêtes




Quand un client demande un programme de MapReduce à courir, la première étape est de localiser et lire le fichier d'entrée contenant les données brutes. Le format de fichier est totalement arbitraire, mais les données doit être converti en quelque chose que le programme peut traiter. Ceci est la fonction de InputFormat et RecordReader. InputFormat décide comment le fichier va être cassé en petits morceaux pour le traitement en utilisant une fonction appelée InputSplit.

Il attribue ensuite un RecordReader pour transformer les données brutes pour le traitement par la carte. Plusieurs types de RecordReaders sont fournis avec Hadoop, offrant une grande variété d'options de conversion. Cette fonction est l'un des moyens que Hadoop gère la grande variété de types de données présents dans les grands problèmes de données.

Que la grande carte de données commencer

Vos données sont maintenant dans une forme acceptable pour la carte. Pour chaque paire d'entrées, une instance distincte de la carte est utilisée pour traiter les données. Mais que fait-il avec la sortie traitées, et comment pouvez-vous garder une trace d'eux?

Carte possède deux capacités supplémentaires pour répondre aux questions. Parce carte et réduire le besoin de travailler ensemble pour traiter vos données, le programme a besoin de recueillir la sortie des cartographes indépendants et de le transmettre aux réducteurs. Cette tâche est effectuée par un OutputCollector. Une fonction de Rapporteur fournit également des informations recueillies à partir des tâches de carte afin que vous sachiez quand ou si les tâches de carte sont complets.

Tout ce travail est effectué sur plusieurs nœuds dans le cluster Hadoop simultanément. Vous pouvez avoir des cas où la sortie de certains procédés de cartographie doit être accumulés avant que les réducteurs peuvent commencer. Ou, certains des résultats intermédiaires peut être nécessaire de traiter avant la réduction.

En outre, une partie de cette sortie peut être sur un autre nœud du nœud où les réducteurs pour que la production spécifique sera exécuté. La collecte et la redistribution des résultats intermédiaires sont effectuées par un de partitionnement et une sorte. Les tâches de carte vont livrer les résultats d'une partition spécifique comme entrées aux tâches réduire.

Après toutes les tâches de carte sont complets, les résultats intermédiaires sont rassemblés dans la partition et un remaniement se produit, la sortie de tri pour le traitement optimal par réduire.

Réduire et combiner des données volumineuses

Pour chaque paire de sortie, de réduire est appelé à accomplir sa tâche. De manière similaire à la carte, de réduire rassemble sa sortie tandis que toutes les tâches sont la transformation. Réduire ne peut pas commencer jusqu'à ce que tout le mappage est effectué. La sortie est également réduire une clé et une valeur. Alors que cela est nécessaire pour réduire de faire son travail, il peut ne pas être le format de sortie le plus efficace pour votre application.

Hadoop fournit une fonctionnalité de OutputFormat, et il fonctionne très bien comme InputFormat. OutputFormat prend la paire clé-valeur et organise la sortie pour l'écriture dans HDFS. La dernière tâche est d'écrire réellement les données à HDFS. Ceci est réalisé par RecordWriter, et il exécute de façon similaire à l'exception RecordReader en sens inverse. Il prend les données de outputformat et l'écrit dans HDFS dans la forme nécessaire pour les besoins du programme.

La coordination de toutes ces activités a été géré dans les versions antérieures de Hadoop par un ordonnanceur de tâches. Ce planificateur était rudimentaire, et que la composition de l'emploi a changé et a grandi, il était clair qu'une approche différente était nécessaire. Le déficit primaire dans 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 offre toutes les fonctionnalités dont vous avez besoin pour briser le big data en morceaux maniables, traiter les données en parallèle sur votre cluster distribué, puis rendre les données disponibles pour la consommation de l'utilisateur ou de traitement supplémentaire. Et il fait tout ce travail d'une manière à tolérance de pannes très résistant. C'est juste le commencement.


» » » » Hadoop MapReduce pour Big Data