MapReduce è un concetto di programmazione essenziale che devi padroneggiare per diventare un ingegnere di dati professionista. Fornisce soluzioni ai sistemi di gestione dei file di big data distribuiti. Quindi, la comprensione del background teorico di MapReduce renderà facile l'apprendimento della tecnica stessa.
Ma cos'è MapReduce e come funziona nei file system distribuiti? Lo scoprirai in questo post.
Che cos'è MapReduce?
MapReduce è un modello di ingegneria dei dati applicato a programmi o applicazioni che elaborano la logica dei big data all'interno di cluster paralleli di server o nodi. Distribuisce una logica di elaborazione su diversi nodi di dati e aggrega i risultati nel client-server.
MapReduce garantisce che l'elaborazione sia veloce, efficiente in termini di memoria e affidabile, indipendentemente dalle dimensioni dei dati.
Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS e altri sono esempi di file system di Big Data distribuiti che utilizzano l'algoritmo MapReduce.
Che cos'è un file system distribuito?
Un file system distribuito (DFS) è un metodo di archiviazione nell'informatica che prevede la divisione di file di dati di grandi dimensioni in blocchi più piccoli e la loro diffusione su diversi server all'interno del sistema. Consente ai client di diverse origini di scrivere e leggere dati, condividere ed eseguire logica programmabile sui dati, direttamente da qualsiasi luogo.
Un file system distribuito in genere è costituito dal server primario (chiamato anche NameNode in Hadoop), cluster paralleli e diversi nodi o server contenenti blocchi di dati replicati, il tutto in un dato centro. Tuttavia, ogni cluster all'interno del file system distribuito contiene da centinaia a migliaia di questi nodi.
Il server primario rileva automaticamente le modifiche all'interno dei cluster. Quindi può assegnare ruoli di conseguenza a ciascun nodo.
Quando il server primario riceve un file di dati, lo invia ai cluster all'interno del DFS. Questi cluster raggruppano e distribuiscono i dati in ogni nodo al loro interno. Ogni nodo replica quindi i dati in quelli che vengono chiamati blocchi di dati per formare una catena. A questo punto, ogni nodo diventa un chunk server.
Imparentato:Cosa sono i data center e perché sono importanti?
Oltre a gestire l'accesso ai dati, il server primario contiene un'annotazione di metadati su ogni file. In questo modo, sa quale nodo gestisce quale file in ogni cluster.
Come funziona MapReduce nei file system distribuiti?
Come accennato in precedenza, i big data sono disponibili in diversi server di blocco in un DFS. Un modo per eseguire la logica programmabile su questi file di dati consiste nell'aggregarli in uno solo. Puoi quindi inserirli in un unico server, che ora gestisce la logica.
Sebbene questo sia un modo convenzionale di interrogare i dati, il problema è che i dati diventano di nuovo un tutto all'interno del singolo server. Quindi un singolo server dovrà comunque gestire la logica su diversi petabyte di dati contemporaneamente. Sfortunatamente, questo era il problema che il sistema intendeva risolvere all'inizio. Quindi non è una buona pratica, dopo tutto.
Imparentato:Come eseguire query su più tabelle di database contemporaneamente con i join SQL
Inoltre, tale aggregazione in un unico server pone diversi rischi per le prestazioni. Questi possono variare da un arresto anomalo del server, scarsa efficienza di calcolo, latenza elevata, consumo elevato di memoria e vulnerabilità a altro.
Ma un altro modo per eseguire la logica programmabile è lasciare i dati in blocchi all'interno di ciascun server distribuito. E poi inietta la funzione logica in ogni server. Significa che ogni chunk server all'interno di un cluster ora gestisce il suo calcolo. L'utilizzo di questo approccio significa che non è necessario aggregare o estrarre i dati in un unico server.
Che esiste il concetto MapReduce in un file system di dati distribuito. Garantisce che un singolo server non debba estrarre i dati dall'origine. Al contrario, disperde la funzione di elaborazione (MapReduce) in diversi nodi di blocco separati cluster, quindi ogni nodo all'interno di ogni cluster gestisce la logica individualmente senza sovraccaricarne una singola server.
Di conseguenza, diversi server gestiscono la logica su bit di dati contemporaneamente. Questa distribuzione del lavoro tra i server si traduce in prestazioni ottimali e maggiore sicurezza, tra le altre positività.
Come viene elaborato il risultato MapReduce in un DFS?
Ecco come funziona l'intera elaborazione di MapReduce in un DFS:
- Il server primario riceve una query Big Data (funzione MapReduce) dal client.
- Quindi lo invia a ciascun cluster per distribuirlo su ogni nodo al suo interno.
- Ogni nodo elabora la funzione MapReduce e ne accumula il risultato.
- Un altro server raccoglie i risultati da ciascun nodo e li rimanda al server primario.
- Il server primario invia quindi il risultato come risposta al client.
Pertanto, l'unico compito di un server primario è inviare un risultato facilmente calcolato al client, ascoltare le modifiche e gestire l'accesso ai dati. Non esegue alcun calcolo. Questo è il motivo per cui la maggior parte delle applicazioni di cloud computing sono straordinariamente veloci nonostante la quantità di dati che elaborano.
Che cos'è esattamente la mappa e la riduzione in MapReduce?
MapReduce utilizza due logiche di programmazione per elaborare i big data in un sistema di gestione dei file distribuito (DFS). Si tratta di una mappa e di una funzione di riduzione.
Il carta geografica La funzione esegue il lavoro di elaborazione su ciascuno dei nodi di dati in ciascun cluster di un file system distribuito. Il ridurre La funzione aggrega quindi i risultati restituiti da ciascun server chunk e lo passa a un altro server all'interno del DFS per l'aggregazione dei risultati. Il server ricevente invia questo calcolo al server primario, che invia il valore restituito al server lato client.
Cosa succede quando un server Chunk si interrompe?
I server all'interno di un file system distribuito (DFS) potrebbero subire tempi di inattività a volte. Potresti pensare che questo romperà l'intero sistema, ma non è così.
C'è un sistema informatico che impedisce tale imminente guasto. Si chiama tolleranza agli errori.
Imparentato:Che cos'è il cloud computing? Come funziona la tecnologia cloud?
Pertanto, anche quando un server si spegne durante l'elaborazione dei dati, la tolleranza agli errori garantisce che il server primario lo rilevi immediatamente. E poiché esiste una replica dei blocchi di dati tra i nodi, il server primario trasferisce istantaneamente il lavoro di elaborazione a un altro server. In questo modo, i tempi di inattività del server all'interno del DFS non influiscono sull'elaborazione dei dati.
MapReduce facilita l'elaborazione dei big data
MapReduce è un modello essenziale che semplifica il calcolo nei file system distribuiti. Poiché consente a più nodi di eseguire un calcolo contemporaneamente, è un metodo rapido utilizzato da vari giganti della tecnologia per risolvere molti dei problemi che accompagnano l'analisi dei big data.
Google, Amazon, IBM, tra gli altri, sono esempi di aziende che utilizzano questo concetto. Google, ad esempio, applica il concetto MapReduce per portare i risultati delle query durante la ricerca su Google.
I big data alimentano molti settori e hanno un effetto su tutte le nostre vite. Ma è più pericoloso o utile?
Leggi Avanti
- Programmazione
- Programmazione
- Big Data
- Analisi dei dati

Idowu è appassionato di qualsiasi tecnologia e produttività intelligenti. Nel tempo libero, gioca con la programmazione e passa alla scacchiera quando è annoiato, ma ama anche staccare dalla routine di tanto in tanto. La sua passione per mostrare alle persone la via della tecnologia moderna lo motiva a scrivere di più.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti