Cos'è Hadoop? Introduzione, Architecture, Ecosistema, Componenti
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 utilizzando HADOOP vengono eseguite su grandi set di dati distribuiti su cluster di computer commerciali. I computer di base sono economici e ampiamente disponibili. Questi sono utili principalmente per ottenere maggiore potenza computazionale a basso costo.
Similmente ai dati che risiedono in un file system locale di un sistema informatico personale, 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 dati. Questa logica computazionale non è altro che una versione compilata di un programma scritto in un linguaggio di alto livello come Java. Tale programma elabora i dati memorizzati in Hadoop HDFS.
Lo sai? Il cluster di computer è costituito da un insieme di più unità di elaborazione (disco di archiviazione + processore) collegate tra loro e che agiscono come un unico sistema.
Ecosistema e componenti Hadoop
Il diagramma seguente mostra i vari componenti nell'ecosistema Hadoop:
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.
Sebbene Hadoop sia meglio conosciuto 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 dei dati su larga scala. Altri progetti relativi a Hadoop su Apache includere sono Hive, HBase, Mahout, Sqoop, Flume e ZooKeeper.
Hadoop Architectura
Hadoop ha un Master-Slave Architecnologia per l'archiviazione dei dati e l'utilizzo dell'elaborazione distribuita dei dati MapReduce e metodi HDFS.
NomeNodo:
NameNode rappresentava tutti i file e le directory utilizzati nello spazio dei nomi
Nodo dati:
DataNode ti aiuta a gestire lo stato di un nodo HDFS e ti consente di interagire con i blocchi
MasterNodo:
Il nodo master consente di eseguire l'elaborazione parallela dei dati utilizzando Hadoop MapReduce.
Nodo schiavo:
I nodi slave sono le macchine aggiuntive nel cluster Hadoop che consentono di archiviare dati per condurre calcoli complessi. Inoltre, tutti i nodi slave sono dotati di Task Tracker e di un DataNode. Ciò consente di sincronizzare i processi rispettivamente con NameNode e Job Tracker.
In Hadoop, il sistema master o slave può essere configurato nel cloud o on-premise
Caratteristiche di "Hadoop"
• Adatto per l'analisi dei Big Data
Poiché i Big Data tendono ad essere distribuiti e non strutturati per natura, i cluster HADOOP sono più adatti per l'analisi dei Big Data. Poiché è la logica di elaborazione (non i dati effettivi) che fluisce ai nodi di elaborazione, viene consumata meno larghezza di banda della rete. Questo concetto è chiamato come concetto di località dei dati che aiuta ad aumentare l'efficienza delle applicazioni basate su Hadoop.
• Scalabilità
I cluster HADOOP possono essere facilmente scalati in qualsiasi misura aggiungendo ulteriori nodi cluster e consentendo così la crescita dei Big Data. Inoltre, il ridimensionamento non richiede modifiche alla logica dell'applicazione.
• Tolleranza agli errori
L'ecosistema HADOOP ha una disposizione per replicare i 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 archiviati su un altro nodo del cluster.
Topologia di rete in Hadoop
La topologia (disposizione) della rete influisce sulle prestazioni del cluster Hadoop quando la dimensione del cluster Hadoop cresce. Oltre alle prestazioni è necessario prestare attenzione anche all'elevata disponibilità e alla gestione dei guasti. Per raggiungere questo Hadoop, la formazione del cluster fa uso della topologia di rete.
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 potrebbe essere difficile, in Hadoop una rete è rappresentata come un albero e la distanza tra i nodi di questo albero (numero di salti) è considerata un fattore importante nella formazione del cluster Hadoop. Qui, la distanza tra due nodi è uguale alla somma della loro distanza dal loro antenato comune più vicino.
Il cluster Hadoop è costituito da un data center, dal rack e dal nodo che esegue effettivamente i lavori. In questo caso, il data center è costituito da rack e il rack è costituito da nodi. La larghezza di banda di rete disponibile per i processi varia a seconda della posizione dei processi. Cioè, la larghezza di banda disponibile diminuisce man mano che ci allontaniamo da-
- Processi sullo stesso nodo
- Nodi diversi sullo stesso rack
- Nodi su rack diversi dello stesso data center
- Nodi in diversi data center