Video: Il paradigma di programmazione di Pregel con Spark GraphX by Andrea Iacono 2024
MapReduce è un paradigma di programmazione progettato per consentire l'elaborazione distribuita parallela di grandi serie di dati, convertendoli in gruppi di tuple e quindi combinando e riducendo quelle tuple in gruppi più piccoli di tuple. In parole povere, MapReduce è stato progettato per raccogliere grandi quantità di dati e utilizzare il calcolo distribuito parallelo per trasformare i big data in dati di dimensioni piccole o regolari.
L'elaborazione distribuita parallela si riferisce a una potente struttura in cui i volumi massivi di dati vengono elaborati molto rapidamente distribuendo le attività di elaborazione tra i cluster di server di merci. Per quanto riguarda MapReduce, tuple si riferiscono a coppie chiave-valore in base alle quali i dati vengono raggruppati, ordinati ed elaborati.
I lavori MapReduce funzionano tramite la mappa e riducono le sequenze operative del processo in un gruppo distribuito di server. Nell'attività mappa , si delegano i dati alle coppie valore-chiave, si trasforma e si filtra. Quindi si assegnano i dati ai nodi per l'elaborazione.
Nel ridurre l'attività , si aggregano i dati in serie di dati di dimensioni più ridotte. I dati della fase di riduzione vengono trasformati in un formato di valore chiave standard - dove il tasto funge da identificativo del record e il valore è il valore che viene identificato dalla chiave. I nodi di calcolo dei cluster elaborano la mappa e riducono le attività definite dall'utente. Questo lavoro viene eseguito in base ai seguenti due passaggi:
-
Mappa i dati.
I dati in entrata devono prima essere delegati in coppie chiave-valore e divisi in frammenti, che vengono quindi assegnati alle attività della mappa. A ciascun cluster di elaborazione, un gruppo di nodi connessi tra loro ed eseguiti un'attività di elaborazione condivisa, viene assegnato un numero di attività della mappa, che vengono successivamente distribuite tra i relativi nodi.
All'elaborazione delle coppie chiave-valore, vengono generate coppie chiave-valore intermedie. Le coppie chiave-valore intermedie sono ordinate in base ai loro valori chiave e questa lista è divisa in una nuova serie di frammenti. Qualunque sia il numero di punti per questi nuovi frammenti, sarà lo stesso del conteggio delle attività di riduzione.
-
Riduci i dati.
Ad ogni task di riduzione è assegnato un frammento. L'attività di riduzione elabora semplicemente il frammento e produce un output, che è anche una coppia chiave-valore. Ridurre le attività sono anche distribuite tra i diversi nodi del cluster. Una volta completata l'attività, l'output finale viene scritto su un file system.
In breve, puoi ridurre in modo rapido ed efficiente e iniziare a dare un senso a un volume enorme, velocità e varietà di dati utilizzando la mappa e ridurre le attività per taggare i dati per coppie (chiave, valore) e quindi ridurre quelle coppie in insiemi di dati più piccoli attraverso operazioni di aggregazione - operazioni che combinano più valori da un set di dati in un singolo valore.Un diagramma dell'architettura MapReduce può essere trovato qui.
Se i tuoi dati non si prestano ad essere taggati ed elaborati tramite chiavi, valori e aggregazioni, quindi mappare e ridurre generalmente non è adatto alle tue esigenze.
Se si utilizza MapReduce come parte di una soluzione Hadoop, l'output finale viene scritto sul Hadoop Distributed File System (HDFS). HDFS è un file system che include cluster di server di merci che vengono utilizzati per archiviare i big data. HDFS rende finanziariamente fattibile la gestione e lo storage di grandi quantità distribuendo le attività di storage tra i cluster di server economici a basso costo.