Cos'è Hadoop? Archistruttura, ecosistema e componenti
⚡ Riepilogo intelligente
Apache Hadoop è un framework open-source che archivia enormi set di dati su cluster di macchine standard e sposta la logica di elaborazione sui dati, consentendo così di scalare l'analisi aggiungendo nodi economici anziché server più potenti.
Cos'è Hadoop?
Apache Hadoop è un framework software open source utilizzato per sviluppare applicazioni di elaborazione dati eseguite in un ambiente informatico distribuito.
Le applicazioni create con Hadoop vengono eseguite su grandi insiemi di dati distribuiti su cluster di computer standard. I computer standard sono economici e ampiamente disponibili. Sono particolarmente utili per ottenere una maggiore potenza di calcolo a basso costo.
Analogamente ai dati residenti in un file system locale di un sistema di personal computer, in Hadoop i dati risiedono in un file system distribuito chiamato File system distribuito Hadoop. Il modello di elaborazione si basa su "Località dei dati" concetto, in cui la logica computazionale viene inviata ai nodi del cluster (server) contenenti i dati. Questa logica computazionale è semplicemente una versione compilata di un programma scritto in un linguaggio di alto livello come JavaUn programma di questo tipo elabora i dati memorizzati in Hadoop HDFS.
Lo sai? Un cluster di computer è costituito da un insieme di più unità di elaborazione (disco di archiviazione + processore) che sono collegate tra loro e funzionano come un unico sistema.
La versione 3.5.0, pubblicata il 2 aprile 2026, è l'attuale versione stabile; la linea 3.4 continua a ricevere aggiornamenti di manutenzione.
Ecosistema e componenti di Hadoop
Il diagramma seguente mostra i vari componenti dell'ecosistema Hadoop, raggruppati in base alla funzione svolta da ciascuno: archiviazione, elaborazione e strumenti di interrogazione, acquisizione e coordinamento correlati.
Apache Hadoop è composto da due sottoprogetti:
- Hadoop MapReduce: MapReduce è un modello computazionale e un framework software per la scrittura di applicazioni eseguite su Hadoop. Questi programmi MapReduce sono in grado di elaborare enormi dati in parallelo su grandi cluster di nodi di calcolo.
- HDFS (File system distribuito Hadoop): HDFS si occupa della parte di archiviazione delle applicazioni Hadoop. Le applicazioni MapReduce consumano dati da HDFS. HDFS crea più repliche di blocchi di dati e le distribuisce sui nodi di calcolo in un cluster. Questa distribuzione consente calcoli affidabili ed estremamente rapidi.
Le versioni attuali includono due moduli principali aggiuntivi. FILATO Hadoop, aggiunto in Hadoop 2.x, pianifica il lavoro sul cluster e Hadoop comune detiene il condiviso Java librerie da cui dipende ogni modulo. YARN è ciò che permette a motori come SparkTez e Flink funzionano insieme a MapReduce.
Sebbene Hadoop sia noto soprattutto per MapReduce e il suo file system distribuito HDFS, il termine viene utilizzato anche per una famiglia di progetti correlati che rientrano nell'ambito del calcolo distribuito e dell'elaborazione di dati su larga scala. Altri progetti correlati ad Hadoop presso Apache includono Alveare, HBase, Mahout, Sqoop, Flumee guardiano dello zoo.
Hadoop Architectura
Hadoop ha un'architettura master-slave per l'archiviazione dei dati e l'elaborazione distribuita dei dati utilizzando MapReduce e i metodi HDFS. Il diagramma seguente affianca questi ruoli, con il livello di archiviazione da un lato e il livello di elaborazione dall'altro.
Hadoop di alto livello Architectura
NomeNodo
Il NameNode memorizza i metadati di ogni file e directory utilizzati nello spazio dei nomi, inclusi i blocchi che compongono ciascun file e la posizione di tali blocchi.
DataNode
Un DataNode gestisce lo stato di un nodo HDFS e consente di interagire con i blocchi in esso memorizzati, inviando al NameNode report periodici sui blocchi e segnali di heartbeat.
MasterNode
Il nodo master consente di eseguire l'elaborazione parallela dei dati utilizzando Hadoop MapReduce.
Nodo slave
I nodi slave sono le macchine aggiuntive nel cluster Hadoop che consentono di archiviare dati ed eseguire calcoli complessi. Inoltre, ogni nodo slave esegue un TaskTracker e un DataNode. Ciò consente di sincronizzare i processi con il NameNode e il JobTracker rispettivamente.
In Hadoop, i sistemi master o slave possono essere configurati nel cloud o in locale.
Una nota sul nome: LavoroTracker and TaskTracker appartengono al runtime MapReduce di prima generazione (MRv1). Da Hadoop 2.x in poi, YARN divide i propri compiti tra un cluster a livello di sistema. ResourceManager Node Manager per lavoratore e uno ApplicationMaster per ogni lavoro. NameNode e DataNode rimangono invariati.
Caratteristiche di Hadoop
Adatto all'analisi di Big Data
As Big Data Poiché tende ad essere distribuito e non strutturato per natura, i cluster Hadoop sono più adatti all'analisi dei Big Data. Poiché è la logica di elaborazione (non i dati effettivi) che fluisce verso i nodi di calcolo, viene consumata meno larghezza di banda di rete. Questo è chiamato concetto di località dei datie contribuisce ad aumentare l'efficienza delle applicazioni basate su Hadoop.
Scalabilità
I cluster Hadoop possono essere facilmente scalati a qualsiasi livello aggiungendo ulteriori nodi, consentendo così la crescita dei Big Data. Inoltre, la scalabilità non richiede modifiche alla logica dell'applicazione.
Fault Tolerance
L'ecosistema Hadoop prevede la replica dei dati di input su altri nodi del cluster. In questo modo, in caso di guasto di un nodo del cluster, l'elaborazione dei dati può comunque procedere utilizzando i dati memorizzati su un altro nodo del cluster. HDFS mantiene tre copie di ogni blocco per impostazione predefinita, un valore impostato da dfs.replication proprietà, e il NameNode replica nuovamente qualsiasi blocco che scenda al di sotto di quel conteggio.
Topologia di rete in Hadoop
La topologia (configurazione) della rete influisce sulle prestazioni del cluster Hadoop man mano che le sue dimensioni aumentano. Oltre alle prestazioni, è necessario considerare anche l'alta disponibilità e la gestione dei guasti. Per raggiungere questi obiettivi, la formazione di un cluster Hadoop si avvale della topologia di rete.
L'albero sottostante mostra come viene modellata tale configurazione, dal data center fino ai nodi all'interno di ciascun rack.
In genere, la larghezza di banda della rete è un fattore importante da considerare durante la creazione di qualsiasi rete. Tuttavia, poiché misurare la larghezza di banda può essere difficile, in Hadoop una rete viene rappresentata come un albero e la distanza tra i nodi di questo albero (il numero di hop) è considerata un fattore importante nella formazione di un cluster Hadoop. In questo contesto, la distanza tra due nodi è pari alla somma delle loro distanze dal loro antenato comune più vicino.
Un cluster Hadoop è costituito da un data center, un rack e un nodo che esegue effettivamente i job. In questo caso, il data center è composto da rack e un rack è composto da nodi. La larghezza di banda di rete disponibile per i processi varia a seconda della posizione dei processi. Ovvero, la larghezza di banda disponibile diminuisce man mano che ci si allontana da...
- Processi sullo stesso nodo
- Nodi diversi sullo stesso rack
- Nodi su rack diversi dello stesso data center
- Nodi in diversi data center
La consapevolezza della posizione dei rack utilizza la stessa struttura ad albero: HDFS posiziona le repliche su più di un rack, quindi la perdita di uno switch di rack non comporta la perdita di tutte le copie dei dati.



