Che cos'è HDFS? (Hadoop Distributed File System)
Summary: Spiegazione di cos'è HDFS (Hadoop Distributed File System). Questo articolo descrive anche come viene utilizzato HDFS e fornisce un esempio.
Instructions
Che cos'è HDFS? (Hadoop Distributed File System)
Fatti
Risposta del dfs file system
Hadoop
Informazioni su Hadoop Distributed File System (HDFS)
Per comprendere in che modo è possibile scalare un cluster Hadoop® a centinaia (e addirittura migliaia) di nodi, è necessario iniziare con Hadoop Distributed File System (HDFS). I dati in un cluster Hadoop
vengono suddivisi in parti più piccole (denominate block) e distribuiti in tutto il cluster. In questo modo, le funzioni di mapping e riduzione possono essere eseguite su sottoinsiemi più piccoli dei data set più grandi e ciò fornisce la scalabilità necessaria per l'elaborazione dei Big Data.
Qual è l'obiettivo?
L'obiettivo di Hadoop è quello di utilizzare i server comunemente disponibili in un cluster di dimensioni molto grandi, in cui ogni server dispone di un set di unità disco interne a basso costo. Per prestazioni più elevate, MapReduce
tenta di assegnare carichi di lavoro a questi server in cui vengono archiviati i dati da elaborare. Questa è nota come località dei dati. Per questo motivo, l'utilizzo di una SAN (Storage Area Network) o nas (Network Attached Storage) in un ambiente Hadoop non è consigliato. Per le implementazioni Hadoop che utilizzano una SAN o NAS, l'overhead aggiuntivo di comunicazione di rete può causare colli di bottiglia nelle prestazioni, in particolare per i cluster di dimensioni maggiori). Ora prenditi un momento e pensa a un cluster da 1.000 macchine, in cui ogni macchina dispone di tre unità disco interne; si consideri quindi il tasso di guasto di un cluster composto da 3.000 unità a basso costo + 1.000 server a basso costo!
Probabilmente siamo già nella stessa pagina: Il tempo medio di insuccesso del componente (MTTF) che si verificherà in un cluster Hadoop è probabilmente analogo a una cerniera sulla pelle di un'azienda: si verificherà un guasto (e sufficientemente blusamente, le cerniere sembrano avere esito negativo solo quando ne hai davvero bisogno). L'aspetto interessante di Hadoop è che la realtà dei tassi MTTF associati all'hardware a basso costo è ben compresa (un punto di progettazione, se si desidera), e parte del punto di forza di Hadoop è che dispone di funzionalità integrate di tolleranza dei guasti e di compensazione dei guasti. Questo è lo stesso per HDFS, in quanto i dati sono suddivisi in blocchi e le copie di questi blocchi vengono archiviate in altri server nel cluster Hadoop. Ovvero, un singolo file viene effettivamente archiviato come block più piccoli replicati su più server dell'intero cluster.
Esempio di HDFS
Pensare a un file contenente i numeri di telefono per tutti gli utenti negli Stati Uniti; le persone con un cognome che inizia con A potrebbero essere archiviate sul server 1, B sul server 2 e così via. In un mondo hadoop, parti di questo phonebook vengono memorizzate nel cluster e per ricostruire l'intero phonebook, il programma richiederebbe i blocchi da ogni server del cluster. Per garantire l'availability in quanto i componenti hanno esito negativo, HDFS replica questi componenti più piccoli su due server aggiuntivi per impostazione predefinita. (questa ridondanza può essere aumentata o ridotta su base file o per un intero ambiente; ad esempio, un cluster Hadoop di sviluppo in genere non richiede ridondanza dei dati). Questa ridondanza offre diversi vantaggi, il più evidente è la maggiore disponibilità.
Inoltre, questa ridondanza consente al cluster Hadoop di suddividere il lavoro in blocchi più piccoli ed eseguire tali job su tutti i server del cluster per una migliore scalabilità. Infine, si ottiene il vantaggio della località dei dati, fondamentale quando si lavora con data set di grandi dimensioni. Questi importanti vantaggi vengono indicati più avanti in questo capitolo.