2017-08-13 2 views
0

je suis nouveau à hadoop et j'ai lu beaucoup de pages de hadoop mapreduce et hdfs mais toujours pas capable d'effacer un concept.Comment Hadoop distribue des données et mapreduce tâche à travers plusieurs nœuds de données

Peut être cette question est stupide ou inhabituel, si c'est tellement que désolé pour cela. Ma question est, supposons que j'avais créé un programme de comptage de mots pour un fichier de taille 1 Go dans hadoop dans lequel la fonction de carte prend chaque ligne comme une entrée et la sortie comme une paire clé-valeur et la fonction paire valeur-clé et simplement itérer la liste et compter le nombre total de fois qu'un mot est entré dans ce fichier.

Maintenant, ma question est que ce fichier est stocké en morceaux sur plusieurs nœuds de données et que map-reduce s'exécute en parallèle sur chaque nœud de données. Dites mon fichier est stocké sur deux datanode et le fichier sur le premier noeud de données contient le mot "hadoop" 5 fois et le fichier sur le deuxième noeud de données contient le mot "hadoop" 7 fois.So fondamentalement sortie de la carte entière réduire le processus sera:

Hadoop: 7

Hadoop: 5

comme 2 carte-reduce fonctions sont exécutées sur 2 différentes données-noeuds en parallèle, Mais la sortie devrait être somme de nombre de mots "Hadoop" sur les deux fichiers et c'est-à-dire: hadoop: 13

Alors, comment pourrais-je atteindre ve ceci ou suis-je manque un concept ici. S'il vous plaît aider je suis mal coincé avec ce concept et je suis tellement désolé si je suis incapable de vous faire comprendre ce que je veux demander.

Répondre

0

Vous pourriez avoir lire beaucoup de pages de Hadoop Mapreduce et HDFS mais vous sembliez avoir manqué celles contenant l'étape après la carte et avant la réduction, qui s'appelle Shuffle and Sort.

Fondamentalement ce qu'il fait est, il mélange les données de tous les mappeurs et envoie les lignes avec les mêmes clés au même réducteur dans un ordre trié. Donc, dans votre cas, à la fois hadoop 7 et hadoop 5 ira le même réducteur qui réduira à hadoop 12 (pas 13!)

Vous pouvez obtenir plus d'informations sur Lecture aléatoire et facilement Trier sur le web. Il y a questions like this too que vous pouvez lire.

+0

Ok merci beaucoup pour votre post.Maintenant, mon concept est effacé.Merci beaucoup –

+0

@yogeshmeghnani De rien. :) – philantrovert

0

Je pense qu'il vous manque complètement le concept du réducteur parce que c'est exactement sa fonction, l'entrée du réducteur sera une clé (dans ce cas hadoop) et une liste de valeurs associées à cette touche (7 et 5), donc votre programme réducteur va itérer la liste des valeurs et faire la sommation, puis hadoop, 13.