HDFS est un système de fichiers particulièrement disponibles, qui vise à stocker d’importantes quantités de données dans un cluster d’ordinateurs et qui est responsable de la maintenance des données. Les fichiers sont composés de blocs de données et sans schéma de classification, et partagés de manière redondante sur différents nœuds. Par conséquent, HDFS est capable de traiter plusieurs millions de données. La longueur des blocs de données, tout comme leur degré de redondance sont configurables.
Le cluster Hadoop fonctionne sur le principe master / slave (maître / esclave). L’architecture du framework est composée de nœuds maîtres, auquel sont subordonnés de nombreux nœuds esclaves. Ce principe se reflète dans la construction de HDFS, qui est basé sur un NameNode et divers DataNodes subordonnés. Le NameNode gère plusieurs métadonnées du système de fichiers, de la structure des répertoires et des DataNodes subordonnés. Pour minimiser la perte de données, les fichiers sont découpés en différents blocs et stockés sur différents nœuds. La configuration standard soit disponible trois fois à chaque exécution.
Chaque DataNode envoie régulièrement un signe de vie au NameNode, on appelle cela le heartbeat (battement de cœur). Si ce signal ne se manifeste pas, le NameNode décrète l’esclave comme étant « mort » et veille à l’aide des copies de fichiers et des autres nœuds qu’il y ait suffisamment de blocs de données dans le cluster qui soient disponibles. Ainsi, le NameNode joue un rôle essentiel dans le framework. Pour ne pas que celui-ci arrive au stade de « Single Point of Failure », il est d’usage de mettre un SecondaryNameNode à disposition du nœud maître. Cela permet que les différentes modifications apportées aux métadonnées soient stockées et que l’instance de contrôle central puisse être récupérée.
Pour le passage de Hadoop 1 à Hadoop 2, HDFS a été étendu à différents systèmes de sauvegarde : NameNode HA (High Availability) qui complète le programme avec un système en cas de panne NameMode, afin que des composants de remplacement soient utilisés automatiquement. Une fonction de copie Snapshot permet de plus que le système soit restauré au statut précédent. L’extension Federation permet également que divers NameNodes puissent opérer au sein d’un même cluster.