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.

  • 🔘 Moduli principali: A partire da Hadoop 2.x, HDFS memorizza i blocchi, MapReduce li elabora e YARN pianifica le risorse del cluster.
  • ☑️ Località dei dati: La logica di elaborazione compilata viene inviata al nodo che contiene il blocco, riducendo così notevolmente il consumo di larghezza di banda di rete.
  • Ecosistema: Hive, HBase, Mahout, Sqoop, Flume e ZooKeeper estendono il nucleo con SQL, NoSQL, acquisizione dati e coordinamento.
  • 🧪 Disposizione padrone-schiavo: Un NameNode tracks namespace metadata mentre DataNodes contiene i blocchi e ne segnala lo stato.
  • Tolleranza di errore: Ogni blocco viene replicato su tutti i nodi, quindi il guasto di una singola macchina non interrompe mai un processo in corso.
  • ⚠️ Topologia di rete: Hadoop modella il cluster come un albero di data center, rack e nodi per mantenere il traffico locale.

Cos'è l'architettura, l'ecosistema e i componenti di Hadoop?

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.

Diagramma dell'ecosistema Hadoop che mostra HDFS, MapReduce e i relativi progetti Apache.

Apache Hadoop è composto da due sottoprogetti:

  1. 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.
  2. 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.

Diagramma di architettura Hadoop di alto livello che mostra NameNode, DataNode, nodo master e nodi slave.

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.

Schema ad albero della topologia di rete Hadoop con data center, rack e nodi utilizzati per misurare la distanza tra i nodi.

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.

DOMANDE FREQUENTI

La versione 3.5.0, pubblicata il 2 aprile 2026, è la prima release stabile della linea 3.5 ed è la scelta abituale per i nuovi cluster. La linea 3.4 è ancora supportata qualora fosse necessaria una versione più consolidata.

Sì. Hadoop supporta la modalità standalone, che funziona come una Java Un processo senza daemon e una modalità pseudo-distribuita, in cui ogni daemon viene eseguito separatamente su un host. Entrambe sono pensate per l'apprendimento e la sperimentazione, non per la produzione.

I modelli addestrati sulla cronologia dei processi prevedono i tempi di esecuzione, raccomandano le dimensioni dei container e segnalano le anomalie nei dati prima che un processo termini. Modelli simili analizzano i log di NameNode e DataNode per individuare dischi guasti e rack sovraccarichi prima che gli avvisi di soglia riescano a farlo.

Velocizza il codice ripetitivo: scheletri di mapper e reducer, configurazione del job driver e blocchi di proprietà XML. Verifica sempre che il codice generato corrisponda alla versione dell'API che stai utilizzando, perché Copilot mescola i vecchi pacchetti mapred con i più recenti pacchetti mapreduce.

Tre repliche per impostazione predefinita, controllate da dfs.replication. Una replica rimane sul nodo di scrittura, una seconda viene spostata in un rack diverso e una terza si unisce al secondo rack. Il NameNode ripristina qualsiasi blocco che scenda al di sotto del target.

Rimane comune il caso in cui l'archiviazione batch su scala petabyte debba rimanere su hardware di proprietà. La maggior parte della nuova elaborazione è scritta per Spark oppure Flink, che funzionano su YARN, quindi HDFS spesso sopravvive come livello di archiviazione anche dopo che MapReduce viene dismesso.

YARN è il gestore delle risorse introdotto in Hadoop 2.x. Separa la pianificazione del cluster dal modello di programmazione MapReduce, che ha rimosso il JobTraccollo di bottiglia e lascia che motori come SparkTez e Flink condividono un cluster.

Java è nativo. Hadoop Streaming consente a qualsiasi eseguibile che legge l'input standard di funzionare come mapper o reducer, quindi Python, Ruby, Perl e C++ sono tutti utilizzabili e Hive aggiunge un livello simile a SQL sugli stessi dati.

Riassumi questo post con: