Il paradigma MapReduce
Il paradigma MapReduce è stato creato nel 2003 per consentire l'elaborazione di grandi insiemi di dati in modo massicciamente parallelo. L'obiettivo del modello MapReduce è quello di semplificare l'approccio alla trasformazione e all'analisi di grandi insiemi di dati, nonché di consentire agli sviluppatori di concentrarsi sugli algoritmi anziché sulla gestione dei dati. Il modello consente una semplice implementazione di algoritmi data-parallel. Esistono diverse implementazioni di questo modello, tra cui l'approccio di Google, programmato in C++, e l'implementazione di Hadoop di Apache, programmata in Java. Entrambi funzionano su grandi cluster di hardware di base in un ambiente condiviso e peer-to-peer.
- Associazione
- La funzione map, detta anche task map, elabora una singola coppia chiave/valore in ingresso e produce un insieme di coppie chiave/valore intermedie.
- Riduci
- La funzione di riduzione, detta anche task di riduzione, consiste nel prendere tutte le coppie chiave/valore prodotte nella fase map che condividono la stessa chiave intermedia e produrre zero, uno o più elementi di dati.
Si noti che le funzioni map e reduce non si occupano della parallelizzazione e dell'esecuzione dei lavori MapReduce. Questa è la responsabilità del modello MapReduce, che si occupa automaticamente della distribuzione dei dati di input, nonché della programmazione e della gestione delle attività di map e reduce.