2010-03-11 8 views
4

J'ai appris l'algorithme mapreduce et comment il peut potentiellement évoluer vers des millions de machines, mais je ne comprends pas comment le tri des clés intermédiaires après la phase de la carte peut évoluer:Goulot d'étranglement de la bande passante réseau pour le tri des clés intermédiaires mapreduce?

1 000 000 x 1 000 000

: machines potentielles communiquant les petites paires clé/valeur des résultats intermédiaires entre elles? N'est-ce pas un goulot d'étranglement?

Répondre

6

Il est vrai que l'un des goulets d'étranglement dans Hadoop MapReduce est la bande passante réseau entre les machines sur le cluster. Cependant, les sorties de chaque phase de la carte ne sont pas envoyées à chaque machine du cluster.

Le nombre de fonctions de carte et de réduction est défini par le travail que vous exécutez. Chaque carte traite ses données d'entrée, les trie pour regrouper les clés et les écrit sur le disque. Le travail définit le nombre de fonctions de réduction que vous souhaitez appliquer à la sortie des cartes. Chaque réduction doit voir toutes les données pour une clé donnée. Donc, si vous avez une seule réduction en cours d'exécution pour le travail, toutes les sorties de chaque carte doivent être envoyées au nœud du cluster qui s'exécute. Avant la réduction s'exécute les données de chaque carte sont fusionnées pour regrouper toutes les clés.

Si plusieurs réducteurs sont utilisés, les mappages partitionnent leur sortie, en créant un par réduction. Les partitions sont envoyées à la réduction correcte. Cela garantit que toutes les données d'une clé donnée sont traitées par une seule réduction.

Pour réduire la quantité de données à envoyer sur le réseau, vous pouvez appliquer une fonction de combinaison à la sortie d'une carte. Cela a pour effet de réduire la sortie de la carte. Vous pouvez ainsi réduire la quantité de données à transférer vers les réducteurs et accélérer le temps d'exécution de l'ensemble du travail.

+0

Hmmm, cette combinaison semble être là où je devrais regarder plus loin pour comprendre cela. Merci – Zubair

+0

L'utilisation d'une moissonneuse-batteuse peut grandement aider à l'exécution d'un travail. Ils se produisent sur la sortie en mémoire de la carte afin qu'ils réduisent également la quantité de données que la carte doit écrire sur le disque. –