Hadoop - Introduzione
Hadoop è un framework open source Apache scritto in java che consente l'elaborazione distribuita di grandi set di dati su cluster di computer utilizzando semplici modelli di programmazione. L'applicazione del framework Hadoop funziona in un ambiente che fornisce archiviazione e calcolo distribuiti tra cluster di computer. Hadoop è progettato per passare da un singolo server a migliaia di macchine, ognuna delle quali offre elaborazione e archiviazione locali.
Architettura Hadoop
Al centro, Hadoop ha due livelli principali:
- Livello di elaborazione / calcolo (MapReduce) e
- Livello di archiviazione (file system distribuito Hadoop).
Riduci mappa
MapReduce è un modello di programmazione parallela per la scrittura di applicazioni distribuite ideato da Google per l'elaborazione efficiente di grandi quantità di dati (set di dati multi-terabyte), su grandi cluster (migliaia di nodi) di hardware comune in modo affidabile e tollerante ai guasti. Il programma MapReduce viene eseguito su Hadoop, un framework open source Apache.
File system distribuito Hadoop
Hadoop Distributed File System (HDFS) si basa su Google File System (GFS) e fornisce un file system distribuito progettato per essere eseguito su hardware comune. Ha molte somiglianze con i file system distribuiti esistenti. Tuttavia, le differenze rispetto ad altri file system distribuiti sono significative. È altamente tollerante ai guasti ed è progettato per essere distribuito su hardware a basso costo. Fornisce accesso ad alta velocità di trasmissione ai dati dell'applicazione ed è adatto per applicazioni con set di dati di grandi dimensioni.
Oltre ai due componenti principali sopra menzionati, il framework Hadoop include anche i seguenti due moduli:
Hadoop Common - Si tratta di librerie e utilità Java richieste da altri moduli Hadoop.
Hadoop YARN - Questo è un framework per la pianificazione dei lavori e la gestione delle risorse del cluster.
Come funziona Hadoop?
È piuttosto costoso costruire server più grandi con configurazioni pesanti che gestiscono l'elaborazione su larga scala, ma in alternativa, puoi collegare insieme molti computer comuni con una singola CPU, come un unico sistema distribuito funzionale e praticamente, le macchine in cluster possono leggere il set di dati parallelamente e fornire un throughput molto più elevato. Inoltre, è più economico di un server di fascia alta. Quindi questo è il primo fattore motivazionale dietro l'utilizzo di Hadoop che viene eseguito su macchine in cluster ea basso costo.
Hadoop esegue il codice su un cluster di computer. Questo processo include le seguenti attività principali eseguite da Hadoop:
I dati sono inizialmente suddivisi in directory e file. I file sono divisi in blocchi di dimensioni uniformi di 128M e 64M (preferibilmente 128M).
Questi file vengono quindi distribuiti su vari nodi del cluster per un'ulteriore elaborazione.
HDFS, essendo in cima al file system locale, supervisiona l'elaborazione.
I blocchi vengono replicati per la gestione dei guasti hardware.
Verifica che il codice sia stato eseguito correttamente.
Esecuzione dell'ordinamento che avviene tra la mappa e le fasi di riduzione.
Invio dei dati ordinati a un determinato computer.
Scrittura dei log di debug per ogni lavoro.
Vantaggi di Hadoop
Il framework Hadoop consente all'utente di scrivere e testare rapidamente i sistemi distribuiti. È efficiente e distribuisce automaticamente i dati e il lavoro tra le macchine e, a sua volta, utilizza il parallelismo sottostante dei core della CPU.
Hadoop non si basa sull'hardware per fornire tolleranza agli errori e alta disponibilità (FTHA), piuttosto la libreria Hadoop stessa è stata progettata per rilevare e gestire gli errori a livello dell'applicazione.
I server possono essere aggiunti o rimossi dal cluster in modo dinamico e Hadoop continua a funzionare senza interruzioni.
Un altro grande vantaggio di Hadoop è che oltre ad essere open source, è compatibile su tutte le piattaforme poiché è basato su Java.