collo di bottiglia della larghezza di banda di rete per l'ordinamento delle chiavi intermedie MapReduce?

StackOverflow https://stackoverflow.com/questions/2423544

  •  19-09-2019
  •  | 
  •  

Domanda

Ho imparato l'algoritmo MapReduce e come può potenzialmente scalare fino a milioni di macchine, ma io non capisco come l'ordinamento delle chiavi intermedie dopo la fase di mappa può scalare, come ci saranno:

1.000.000 x 1.000.000

: potenziali macchine comunicanti piccole coppie chiave / valore dei risultati intermedi con l'altro? Non è questo un collo di bottiglia?

È stato utile?

Soluzione

E 'vero che uno dei colli di bottiglia in Hadoop MapReduce è la larghezza di banda di rete tra le macchine nel cluster. Tuttavia, le uscite di ciascuna fase mappa non vengono inviati ogni macchina del cluster.

Il numero di carta e ridurre le funzioni sono definite dal lavoro che si sta eseguendo. Ogni mappa elabora i suoi dati di input, ordina al gruppo le chiavi e lo scrive su disco. Il lavoro definisce quanti ridurre le funzioni che si desidera applicare per l'uscita dal mappe.

Ogni ridurre bisogno di vedere tutti i dati per una data chiave. Quindi, se si ha un singolo ridurre in esecuzione per il lavoro tutte le uscite di ogni mappa avrebbe bisogno di essere inviato al nodo del cluster che esegue che riducono. Prima che le corse di ridurre i dati da ogni mappa vengono fuse per raggruppare tutte le chiavi.

Se si utilizzano più riduttori, le mappe di partizione la loro produzione, la creazione di uno per ridurre. Le partizioni vengono inviati per ridurre il corretto. Ciò garantisce che tutti i dati per una data chiave viene elaborato da un singolo ridurre.

Per contribuire a ridurre la quantità di dati necessari per essere inviati attraverso la rete è possibile applicare una funzione Combina l'uscita di una mappa. Questo ha l'effetto di ridurre l'esecuzione di un sull'uscita dalla mappa. Così si può ridurre al minimo la quantità di dati che deve essere trasferito ai riduttori e velocizzare il tempo di esecuzione del lavoro complessivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top