Tous les produits
Search
Centre de documentation

E-MapReduce:HDFS

Dernière mise à jour :Aug 09, 2026

Le Hadoop Distributed File System (HDFS) est un système de fichiers distribué hautement tolérant aux pannes, conçu pour Hadoop. Il permet un accès à haut débit à des ensembles de données massifs (de l'ordre du téraoctet ou du pétaoctet) de manière rentable. Le HDFS est idéal pour les opérations de lecture et d'écriture distribuées sur de grands volumes de données, en particulier dans les scénarios à dominante lecture.

Fonctionnalités

Le HDFS au sein des clusters E-MapReduce présente les avantages suivants :

  • Haute tolérance aux pannes et évolutivité.

  • Interface en ligne de commande Shell pour une interaction directe.

  • Composant de visualisation web pour une gestion simplifiée.

  • Gestion des autorisations de fichiers similaire à Linux.

  • Conscience de la localité. Le HDFS tient compte de l'emplacement des nœuds de calcul lors de l'allocation de l'espace de stockage.

  • Rééquilibrage automatique en cas de répartition inégale des données entre les DataNodes.

  • Redémarrages et mises à niveau progressives (rolling).

Architecture

Le HDFS utilise une architecture classique de type Master/Slave. Un cluster HDFS se compose d'un seul NameNode et de plusieurs DataNodes.

Le NameNode gère les métadonnées du système de fichiers et interagit avec les clients. Les DataNodes gèrent les blocs de données stockés localement. Lors du chargement d'un fichier dans le HDFS, celui-ci est divisé en un ou plusieurs blocs. Ces blocs sont répartis sur différents DataNodes selon la politique de réplication des données du cluster. Le NameNode centralise la gestion des informations de localisation de ces blocs.

Termes

Nom

Description

NameNode

Gère l'espace de noms du système de fichiers, maintient l'arborescence des répertoires et les métadonnées, et enregistre le mappage entre chaque bloc écrit et son fichier parent.

Ces informations sont persistées sur le disque local sous forme d'image d'espace de noms (FSImage) et de journal des modifications (EditsLog).

DataNode

Stocke les données de fichier réelles.

Un DataNode stocke ou sert des blocs selon les instructions du NameNode ou d'un client, et signale périodiquement ses informations de bloc au NameNode.

Client

Accède au système de fichiers en communiquant avec le NameNode et les DataNodes. Le client fournit une interface de système de fichiers similaire à POSIX.

Blocs

Le HDFS divise les fichiers en blocs de 128 Mo pour le stockage. Ces blocs peuvent être stockés sur différents nœuds, ce qui permet au HDFS de stocker des fichiers uniques dont la taille dépasse la capacité d'un disque unique. Par défaut, chaque bloc dispose de trois réplicas. Si un nœud core EMR utilise des disques cloud, deux réplicas sont utilisés. Les réplicas sont stockés sur plusieurs nœuds au niveau des blocs, ce qui améliore la sécurité des données et permet aux jobs distribués d'exploiter les données locales pour le calcul, réduisant ainsi le trafic réseau.

Secondary NameNode

Dans un cluster sans haute disponibilité, un processus Secondary NameNode s'exécute par défaut. Il consomme l'EditsLog, fusionne périodiquement le FsImage et l'EditsLog pour générer un nouveau fichier FsImage, et réduit la charge sur le NameNode.

Haute disponibilité

Dans un cluster haute disponibilité (HA), deux NameNodes s'exécutent par défaut : un actif (Active) et un passif (Standby).

Le NameNode Active traite les demandes des DataNodes et des clients. Le NameNode Standby maintient les mêmes métadonnées à jour et est prêt à prendre le relais en cas de défaillance du NameNode Active. En cas de panne, le NameNode Standby détecte le problème et passe au rôle Active pour continuer à servir les demandes des DataNodes et des clients.