Cos'è Hadoop?
Apache Hadoop è un framework software open source utilizzato per sviluppare applicazioni di elaborazione dati che vengono eseguite in un ambiente di elaborazione distribuito.
Le applicazioni create utilizzando HADOOP vengono eseguite su set di dati di grandi dimensioni distribuiti su cluster di computer comuni. I computer di base sono economici e ampiamente disponibili. Questi sono principalmente utili per ottenere una maggiore potenza di calcolo a basso costo.
Simile ai dati che risiedono in un file system locale di un sistema di personal computer, in Hadoop, i dati risiedono in un file system distribuito che è chiamato come un file system distribuito Hadoop . Il modello di elaborazione si basa sul concetto di "Località dei dati" in cui la logica di calcolo 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 archiviati in Hadoop HDFS.
Lo sai? Il cluster di computer è costituito da un insieme di più unità di elaborazione (disco di archiviazione + processore) che sono collegate tra loro e agisce come un unico sistema.
In questo tutorial imparerai,
- Hadoop EcoSystem e componenti
- Architettura Hadoop
- Caratteristiche di "Hadoop"
- Topologia di rete in Hadoop
Hadoop EcoSystem e componenti
Il diagramma sottostante mostra i vari componenti dell'ecosistema Hadoop-
Apache Hadoop è costituito 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 ( Hadoop Distributed File System ): HDFS si occupa della parte di archiviazione delle applicazioni Hadoop. Le applicazioni MapReduce utilizzano i 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 ricadono sotto l'ombrello del calcolo distribuito e dell'elaborazione dati su larga scala. Altri progetti relativi a Hadoop in Apache includono Hive, HBase, Mahout, Sqoop, Flume e ZooKeeper.
Architettura Hadoop
Hadoop ha un'architettura master-slave per l'archiviazione dei dati e l'elaborazione dei dati distribuita utilizzando i metodi MapReduce e HDFS.
NameNode:
NameNode rappresentava tutti i file e le directory utilizzati nello spazio dei nomi
DataNode:
DataNode ti aiuta a gestire lo stato di un nodo HDFS e ti permette di interagire con i blocchi
MasterNode:
Il nodo master consente di condurre l'elaborazione parallela dei dati utilizzando Hadoop MapReduce.
Nodo slave:
I nodi slave sono le macchine aggiuntive nel cluster Hadoop che consentono di memorizzare i dati per condurre calcoli complessi. Inoltre, tutto il nodo slave viene fornito con Task Tracker e 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 in locale
Caratteristiche di "Hadoop"
• Adatto per Big Data Analysis
Poiché i Big Data tendono ad essere distribuiti e non strutturati in natura, i cluster HADOOP sono i più adatti per l'analisi dei Big Data. Poiché è la logica di elaborazione (non i dati effettivi) che fluisce verso i nodi di elaborazione, viene consumata meno larghezza di banda della rete. Questo concetto è chiamato concetto di località dei dati che aiuta ad aumentare l'efficienza delle applicazioni basate su Hadoop.
• Scalabilità
I cluster HADOOP possono essere facilmente ridimensionati in qualsiasi misura aggiungendo ulteriori nodi del cluster e quindi consente la crescita dei Big Data. Inoltre, il ridimensionamento non richiede modifiche alla logica dell'applicazione.
• Tolleranza ai guasti
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 aumenta. Oltre alle prestazioni, è necessario prestare attenzione anche all'elevata disponibilità e alla gestione dei guasti. Per ottenere questo risultato Hadoop, la formazione dei cluster utilizza la topologia di rete.
In genere, la larghezza di banda della rete è un fattore importante da considerare durante la formazione di una 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, il rack e il nodo che esegue effettivamente i lavori. Qui, 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 diversi rack dello stesso data center
- Nodi in diversi data center