MapReduce
Cos’è MapReduce?
MapReduce è un modello di programmazione che viene eseguito su Hadoop, un motore di analisi dati ampiamente utilizzato per i Big Data e scrive applicazioni che vengono eseguite in parallelo per elaborare grandi volumi di dati archiviati su cluster.
Flessibilità estrema
MapReduce è molto più lento di altri modelli, ma il suo vantaggio principale è la sua flessibilità in termini di scalabilità rapida o allocazione di più nodi di computer per ridurre i tempi di elaborazione. MapReduce può scalare su migliaia di nodi, probabilmente per i suoi file system distribuiti e la sua capacità di eseguire processi in prossimità dei dati anziché spostarli. La sua scalabilità riduce i costi di storage e di elaborazione dei volumi di dati in costante aumento.
Elaborazione in parallelo
Con MapReduce, gli sviluppatori non devono scrivere codice per il parallelismo, la distribuzione dei dati o altri processi di codifica complessi, perché questi sono già integrati nel modello. Solo questo contribuisce a ridurre il tempo di programmazione analitica.
Supporto dei dati non strutturati
MapReduce è in grado di supportare qualsiasi tipo di struttura dati, anche i dati non strutturati che costituiscono la maggior parte (80 per cento) dei dati generati, aiutando le aziende ad analizzarli in modo più efficace.
Fault tolerance
MapReduce è meno vulnerabile ai guasti hardware che causano un arresto del sistema, perché opera distribuendo i dati su molti computer e server. MapReduce invia una serie completa di dati a ogni nodo della rete, se un nodo o un componente hardware non funziona, tutti i dati possono sopravvivere ed essere recuperati automaticamente.
Come funziona MapReduce?
Il funzionamento di MapReduce può essere suddiviso in tre fasi, con una quarta fase facoltativa.
- Mapper: in questa prima fase, la logica condizionale filtra i dati attraverso tutti i nodi in coppie chiave-valore. La "chiave" si riferisce all’indirizzo di offset per ogni record, mentre il "valore" contiene l’intero contenuto del record.
- Shuffle: durante la seconda fase, i valori di output dalla mappatura vengono ordinati e consolidati. I valori vengono raggruppati in base a chiavi simili e i quelli duplicati vengono scartati. Anche l’output della fase Shuffle è organizzato in coppie chiave-valore, ma questa volta i valori indicano un intervallo e non il contenuto di un record.
- Reducer: nella terza fase, l'output della fase Shuffle consolidato viene aggregato, con tutti i valori aggiunti alle chiavi corrispondenti. Tutto questo viene quindi combinato in una singola directory di output.
- Combiner: l'esecuzione di questa fase può ottimizzare le prestazioni dei processi MapReduce, accelerandone il flusso. Per effettuare questa operazione MapReduce recupera gli output della fase Mapper e li esamina a livello di nodo per individuare duplicati, che vengono combinati in una singola coppia chiave-valore, riducendo in questo modo il processo che la fase Shuffle deve completare.
Per quanto riguarda la modalità di esecuzione di queste fasi, l’architettura è composta da due servizi daemon, Resource Manager e Node Manager, che eseguono le attività Mapper e Reducer, insieme al monitoraggio e alla riesecuzione delle attività che non sono state completate. Resource Manager e Node Manager gestiscono anche l’elaborazione parallela e i componenti fault tolerance per tutti i processi MapReduce.
Nella struttura, le funzioni di gestione delle risorse e di pianificazione/monitoraggio sono suddivise tra diversi daemon: un global resources manager e un application master per ogni applicazione.
Quando arriva un processo, il resource manager coordina l’allocazione cluster-resource di tutte le applicazioni in esecuzione. Collabora con l’application master e il node manager per determinare quali nodi possono accettare il processo. In seguito, l’application master e il/i node manager dei si coordinano. I node manager lanciano e monitorano i container di elaborazione per portare a termine il processo.
In che modo le aziende usano MapReduce?
Con l’evoluzione del settore dell’elaborazione dei dati, la quota di mercato di MapReduce è scesa a meno dell’1%. Tuttavia, viene ancora utilizzato da circa 1.500 aziende negli Stati Uniti, con una diffusione anche in altri paesi.
In generale, MapReduce è usato dal settore del software e dei servizi IT. Tra gli altri settori figurano, servizi finanziari, cliniche e assistenza sanitaria, istruzione superiore, vendita al dettaglio, assicurazioni, telecomunicazioni e banche. Qui di seguito sono riportati alcuni esempi di casi d’uso:
- Servizi finanziari: le banche retail usano un sistema Hadoop per convalidare la precisione e la qualità dei dati nel rispetto delle norme federali.
- Settore sanitario: una società di informatica del settore sanitario utilizza un sistema Hadoop per archiviare anni di richieste di indennizzo e dati di rimborso, che corrisponde a elaborare terabyte di dati ogni giorno e archiviarli per ulteriori scopi analitici. Un altro sistema ospedaliero monitora i parametri vitali dei pazienti raccogliendo miliardi di data point costantemente trasmessi da sensori posizionati sui pazienti.
- Servizi IT: un importante service provider IT raccoglie dati diagnostici dai suoi sistemi di storage distribuiti presso i suoi clienti. Utilizza un sistema Hadoop che esegue MapReduce su registri non strutturati e informazioni di diagnostica del sistema.
- Ricerca: la ricerca in corso nell'ambito del progetto sul genoma umano usa Hadoop MapReduce per elaborare enormi quantità di dati. Un noto fornitore di ricerche di genetica familiare gestisce un flusso crescente di dati di sequenziamento genico, tra cui dati strutturati e non strutturati relativi a nascite, decessi, risultati di censimenti, registri militari e di immigrazione che ammontano a molti petabyte e sono in continua crescita.
- Vendita al dettaglio: uno dei principali marketplace online usa MapReduce per analizzare enormi volumi di dati di registro e determinare il comportamento dei clienti, i consigli di ricerca e altro ancora. Un importante grande magazzino gestisce i dati delle campagne di marketing attraverso un sistema Hadoop per ottenere informazioni al fine di realizzare campagne più mirate che arrivano al singolo cliente.
- Telecomunicazioni: per un importante fornitore di telecomunicazioni, conservare miliardi di record di chiamate con accesso in tempo reale per i clienti equivale a centinaia di terabyte di dati da elaborare.
In che modo HPE aiuta con MapReduce?
HPE propone diverse soluzioni che possono contribuire a farti risparmiare tempo, denaro e risorse umane nella gestione dei sistemi Hadoop che eseguono MapReduce.
HPE Pointnext Services offre ad esempio consulenza e assistenza tecnica per la pianificazione, la progettazione e l'integrazione dell'ambiente di analisi dei Big Data. La progettazione e l’implementazione di Hadoop e MapReduce è semplificata in modo tale da poterti concentrare sulla ricerca di informazioni analitiche per prendere decisioni aziendali consapevoli.
Inoltre, HPE GreenLake propone una soluzione scalabile che semplifica radicalmente l'intero ciclo di vita di Hadoop. Si tratta di una soluzione end-to-end che comprende l’hardware, il software e il supporto necessari per ambienti simmetrici e asimmetrici. Con l’esclusivo metodo di determinazione dei prezzi e di fatturazione HPE, è molto più facile conoscere i costi Hadoop attuali e prevedere in modo più preciso quelli futuri associati alla tua soluzione.
Dopo molti anni di esperienze di coinvolgimento dei clienti in cui HPE ha contribuito con ambienti Hadoop, ora ha realizzato due edizioni di una soluzione Hadoop di livello enterprise collaudate e pronte per l'implementazione. Sono integrate nell’HPE Insight Cluster Management Utility, che consente ai leader dell’IT I&O di effettuare il provisioning, gestire e monitorare rapidamente l’infrastruttura e le diverse implementazioni di Hadoop. L’edizione standard della soluzione Hadoop HPE di livello enterprise può essere utilizzata nella soluzione per Big Data HPE GreenLake.