MapReduce: elaborazione dati semplificata su cluster di grandi dimensioni

MapReduce è un modello di programmazione e un’implementazione associata per l’elaborazione e la generazione di set di dati di grandi dimensioni. Gli utenti specificano una funzione map che elabora una coppia chiave / valore per generare un insieme di coppie chiave/valore intermedio e una funzione reduce che unisce tutti i valori intermedi associati alla stessa chiave intermedia. Molti compiti del mondo reale sono esprimibili in questo modello, come mostrato nel documento.

I programmi scritti in questo stile funzionale vengono automaticamente parallelizzati ed eseguiti su un grande cluster di macchine commodity. Il sistema di runtime si occupa dei dettagli del partizionamento dei dati di input, della pianificazione dell’esecuzione del programma su un insieme di macchine, della gestione dei guasti della macchina e della gestione della comunicazione tra macchine richiesta. Ciò consente ai programmatori senza alcuna esperienza con sistemi paralleli e distribuiti di utilizzare facilmente le risorse di un grande sistema distribuito.

La nostra implementazione di MapReduce funziona su un grande cluster di macchine commodity ed è altamente scalabile: un tipico calcolo MapReduce elabora molti terabyte di dati su migliaia di macchine. I programmatori trovano il sistema facile da usare: centinaia di programmi MapReduce sono stati implementati e verso l’alto di mille posti di lavoro MapReduce vengono eseguiti sui cluster di Google ogni giorno.

Diapositive HTML