HDFS è un file system distribuito che gestisce dataset di grandi dimensioni in esecuzione sull'hardware commerciale. Viene utilizzato per aumentare le dimensioni di un singolo cluster Apache Hadoop a centinaia (e anche migliaia) di nodi. HDFS è uno dei principali componenti di Apache Hadoop, gli altri sono MapReduce e YARN. HDFS non deve essere confuso o sostituito da Apache HBase, un sistema di gestione database non relazionale a colonne che risiede al livello superiore di HDFS e può supportare meglio le esigenze di dati in tempo reale grazie al motore di elaborazione in-memory.
Poiché un'istanza HDFS può essere costituita da migliaia di server, il malfunzionamento di almeno un server è inevitabile. HDFS è stato progettato per rilevare i guasti ed eseguire automaticamente il ripristino in tempi rapidi.
HDFS è destinato più per l'elaborazione in modalità batch che per l'utilizzo interattivo, pertanto l'attenzione nella fase di progettazione è rivolta all'elevata velocità di trasmissione dei dati che consente la gestione degli accessi in streaming ai dataset.
HDFS ospita applicazioni che dispongono di dataset con dimensioni espresse in gigabyte e terabyte. HDFS fornisce un'elevata larghezza di banda dati aggregati ed è in grado di aumentare le dimensioni di un singolo cluster a centinaia di nodi.
Per semplificare l'adozione, HDFS è progettato per essere utilizzato su più piattaforme hardware ed è compatibile con un'ampia gamma di sistemi operativi sottostanti.
Prendiamo in esame un file che include i numeri di telefono di tutti gli abitanti degli Stati Uniti; i numeri delle persone che hanno cognomi che iniziano con la lettera A potrebbero essere memorizzati sul server 1, quelli che iniziano con la lettera B sul server 2, e così via.
Con Hadoop, le varie parti di questa rubrica verrebbero memorizzate in tutto il cluster, e per ricostruire l'intera rubrica, il programma necessiterebbe dei blocchi di ciascun server del cluster.
Per garantire la disponibilità se e quando un server ha esito negativo, HDFS replica questi parti più piccole su due server aggiuntivi per impostazione predefinita. (La ridondanza può essere aumentata o diminuita in base ai singoli file o all'intero ambiente; ad esempio, un cluster Hadoop di sviluppo generalmente non richiede alcuna ridondanza dei dati.) Questa ridondanza offre molteplici vantaggi, il più evidente dei quali è quello di ottenere una maggiore disponibilità.
Inoltre la ridondanza permette al cluster Hadoop di suddividere il lavoro in blocchi più piccoli ed eseguire tali lavori su tutti i server del cluster per una migliore scalabilità. Infine, si ottiene il vantaggio della prossimità dei dati, che risulta fondamentale quando si lavora con i dataset di grandi dimensioni.
IBM e Cloudera hanno stretto una partnership per offrire una distribuzione Hadoop di livello aziendale ai vertici del settore, tra cui un ecosistema integrato di prodotti e servizi per supportare analytics più veloci su vasta scala.