1. Livres & vidéos
  2. Hadoop
  3. Manipuler HDFS
Extrait - Hadoop Maîtriser l’écosystème Big Data : HDFS, MapReduce, Hive, Spark…
Extraits du livre
Hadoop Maîtriser l’écosystème Big Data : HDFS, MapReduce, Hive, Spark… Revenir à la page d'achat du livre

Manipuler HDFS

Introduction

L’installation et la configuration d’Hadoop ne représentent que la première étape dans la mise en place d’un environnement Big Data. Une fois le cluster opérationnel, l’enjeu central devient la manipulation du système de fichiers distribué, HDFS. C’est en effet dans HDFS que réside la véritable puissance d’Hadoop, car il offre un espace de stockage unique, extensible et tolérant aux pannes, capable d’absorber des volumes de données colossaux provenant de sources variées.

Ce chapitre a pour objectif de familiariser le lecteur avec les opérations fondamentales d’HDFS. De la création d’un répertoire à la gestion des fichiers, en passant par la lecture, la copie, la réplication et la surveillance de l’espace utilisé, chaque commande sera étudiée en détail et replacée dans un contexte pratique. Nous verrons qu’interagir avec HDFS ressemble beaucoup aux commandes classiques de Linux, mais avec une portée bien plus large, car chacune de ces opérations agit sur un système distribué qui peut impliquer des dizaines, voire des centaines de serveurs.

L’apprentissage ne se limitera pas aux commandes isolées. Nous explorerons également des cas pratiques comme la gestion d’un dossier d’exemples, l’organisation...

Commandes de base HDFS

L’un des premiers pas vers la maîtrise d’Hadoop consiste à apprendre à interagir avec son système de fichiers distribué, HDFS. Contrairement à un disque local où chaque fichier est stocké en un seul morceau sur un disque physique unique, HDFS adopte une approche radicalement différente.

Dans cette section, nous allons découvrir les principales commandes, regroupées par familles (exploration, gestion de répertoires, transferts de fichiers, lecture et affichage, administration), et les illustrer par des exemples concrets.

1. Explorer et naviguer dans HDFS

Explorer HDFS est la première étape pour tout utilisateur. Contrairement à un disque local où l’on peut naviguer avec des gestionnaires graphiques, dans Hadoop cette exploration se fait presque exclusivement via la ligne de commande. 

La commande la plus utilisée est :

hdfs dfs -ls / 

Elle affiche le contenu de la racine du système de fichiers HDFS. Dès une première installation, on retrouve généralement deux répertoires principaux : /user, réservé aux espaces utilisateurs, et /tmp, utilisé par certaines applications comme zone temporaire.

La sortie fournit des informations précieuses : les droits d’accès (sous la forme drwxr-xr-x), le propriétaire (souvent hadoop ou hduser), le groupe, la taille, la date et le chemin. Ces informations permettent non seulement de vérifier la présence d’un dossier, mais aussi de comprendre qui peut y accéder.

L’option -R rend la navigation encore plus puissante car elle liste de manière récursive tous les sous-dossiers :

hdfs dfs -ls -R /user/hadoop 

Avec cette commande, on obtient une vue complète d’un espace utilisateur, ce qui est utile dans les environnements de production où chaque répertoire peut contenir des centaines de fichiers.

D’autres commandes facilitent l’exploration quantitative :

  • hdfs dfs -du indique combien d’espace disque est consommé par un fichier ou un dossier.

  • hdfs dfs -count fournit le nombre total de répertoires, fichiers et octets stockés.

Ces outils sont essentiels pour diagnostiquer des problèmes de saturation. Par exemple, si un utilisateur consomme...

Cas pratique : gestion d’un dossier d’exemples

Après avoir découvert les commandes de base d’HDFS, il est essentiel de les mettre en pratique dans un scénario concret. Rien ne remplace l’expérimentation pas à pas pour comprendre la logique d’un système distribué.

Dans cette section, nous allons créer un dossier de travail dans HDFS, y importer plusieurs fichiers, vérifier leur présence, les consulter, puis organiser leur stockage. Ce cas pratique constitue un exercice complet et réaliste que chaque étudiant peut reproduire sur sa machine.

1. Création d’un espace de travail

La première étape consiste à créer un répertoire dédié dans HDFS. On peut par exemple réserver un dossier appelé /user/hadoop/exemples où seront stockés nos fichiers. La commande est simple :

hdfs dfs -mkdir /user/hadoop/exemples 

Une fois exécutée, ce répertoire est enregistré dans l’espace de noms géré par le NameNode, même si, physiquement, il n’existe pas de « dossier » au sens classique mais uniquement une hiérarchie logique de chemins.

Pour vérifier la création :

hdfs dfs -ls /user/hadoop 

Output attendu :

drwxr-xr-x   - hadoop supergroup               0...

Types de fichiers et formats supportés dans HDFS

1. Introduction

HDFS a été conçu pour accueillir une grande variété de données. Contrairement aux bases de données relationnelles classiques qui imposent une structure rigide, il est capable de stocker aussi bien des données brutes que des ensembles complexes organisés selon un schéma. Mais ce qui paraît être une liberté totale cache en réalité un choix stratégique : le format dans lequel on enregistre les données conditionne directement leur volume sur disque, leur vitesse de traitement, leur compatibilité avec les outils analytiques et même leur coût global.

Ainsi, le choix du format est une décision structurante. Stocker un fichier texte brut de plusieurs gigaoctets est simple et immédiat, mais ce même fichier prendra beaucoup de place et chaque job MapReduce devra analyser ligne par ligne sans optimisation. À l’inverse, un format orienté colonnes comme Parquet ou ORC demandera une préparation plus technique mais réduira l’espace nécessaire et accélérera les traitements. On comprend donc que le format n’est pas neutre : il reflète un compromis entre simplicité, performance et portabilité.

2. Les formats textuels traditionnels

Les formats textuels comme TXT, CSV ou JSON constituent souvent le point de départ de tout projet Hadoop. Le fichier texte brut représente la solution la plus simple : il contient une suite de caractères lisibles directement par un humain et ne requiert aucun outil spécialisé pour être interprété. Sa force réside dans sa simplicité et son universalité, mais cette même simplicité devient une faiblesse à grande échelle. Les fichiers texte consomment énormément d’espace disque puisqu’ils ne bénéficient d’aucune compression implicite et, lors des analyses, chaque ligne doit être parcourue sans possibilité d’indexation. Ainsi, si ce format se prête bien à des tests rapides ou à des jeux de données modestes, il devient inadapté dès que les volumes augmentent.

Le CSV est un pas supplémentaire vers...

Stockage physique sur les DataNodes

Une fois que les blocs HDFS sont créés et référencés par le NameNode, leur existence concrète se matérialise au niveau des DataNodes. Ces derniers constituent la couche physique de stockage dans Hadoop. Contrairement à une vision simpliste où l’on pourrait imaginer que les blocs sont enregistrés de manière abstraite dans un « cloud », HDFS repose en réalité sur les disques durs locaux des serveurs physiques ou virtuels. Cette section explore la manière dont Hadoop utilise ces disques, comment il interagit avec le système de fichiers sous-jacent et où résident effectivement les blocs dans l’architecture.

1. Répartition des blocs sur plusieurs disques

Une fois les blocs HDFS créés, leur stockage réel s’effectue sur les disques locaux des DataNodes. Contrairement à un système de fichiers classique, où les données sont centralisées sur un support unique, Hadoop répartit intelligemment les blocs entre plusieurs disques physiques. Cette stratégie permet d’exploiter pleinement le parallélisme matériel et de garantir la tolérance aux pannes.

a. Principe général de la répartition

Chaque DataNode d’un cluster Hadoop peut s’appuyer sur un ou plusieurs disques physiques pour stocker les blocs de données qui lui sont attribués. Ces disques peuvent être de type HDD (Hard Disk Drive), privilégiés pour leur grande capacité et leur faible coût, ou SSD (Solid-State Drive), utilisés lorsque la rapidité d’accès et les performances en lecture/écriture sont prioritaires. Dans de nombreuses infrastructures, les deux technologies coexistent afin d’obtenir un compromis idéal entre volume de stockage, vitesse et rentabilité.

Contrairement aux systèmes de stockage classiques qui utilisent des mécanismes tels que le RAID (Redundant Array of Independent Disks) pour agréger plusieurs disques en un seul volume logique, Hadoop adopte une approche radicalement différente. Chaque disque est considéré comme une unité de stockage indépendante, gérée de manière autonome...

Compression et gestion de l’espace dans HDFS

L’un des défis majeurs dans les environnements Big Data est la quantité gigantesque d’espace disque requise pour stocker les données brutes, car les fichiers traités par Hadoop peuvent atteindre plusieurs téraoctets voire pétaoctets et une simple duplication par le mécanisme de réplication des blocs multiplie rapidement la consommation totale, afin d’optimiser l’utilisation de l’espace et de réduire les coûts de stockage, HDFS s’appuie sur des techniques de compression et sur des mécanismes internes de gestion efficace de l’espace disque, la compression permet de diminuer la taille physique des fichiers stockés sans perte ou avec une perte contrôlée selon le format choisi, ce qui réduit non seulement l’espace nécessaire mais améliore aussi les performances d’entrée-sortie et le débit réseau lors du transfert des blocs entre DataNodes, la gestion de l’espace quant à elle repose sur l’équilibrage de la distribution des blocs, la surveillance de l’utilisation des disques locaux et l’application de stratégies pour libérer ou réorganiser les données lorsque cela devient nécessaire, combinées, ces deux approches offrent à HDFS la capacité de gérer des volumes massifs de données tout en maintenant un rapport optimal entre performance et coût de stockage.

1. Principes généraux de la compression dans HDFS

a. Les enjeux du stockage à grande échelle

Dans les environnements Big Data, la quantité de données collectées et stockées croît de manière exponentielle. Chaque fichier est découpé en blocs, puis répliqué plusieurs fois afin de garantir la tolérance aux pannes et la haute disponibilité. Ce fonctionnement, indispensable à la fiabilité du système, multiplie la consommation d’espace disque et peut rapidement saturer les ressources du cluster.

À long terme, cette croissance continue pose un défi de soutenabilité : comment stocker davantage sans compromettre la performance ni alourdir les coûts d’infrastructure ?...

Visualisation de l’organisation interne via l’interface web

1. Introduction à la supervision web dans Hadoop

Dans Hadoop Distributed File System, les interfaces web intégrées jouent un rôle clé pour la supervision et la compréhension de l’organisation interne des données. Elles offrent une vue d’ensemble claire et visuelle du cluster, complétant les commandes en ligne de commande qui restent parfois fastidieuses ou peu intuitives pour analyser de grands volumes d’informations. Grâce à ces interfaces, un administrateur ou un développeur peut rapidement vérifier l’état des DataNodes, identifier les blocs manquants, suivre l’utilisation de l’espace disque ou diagnostiquer un problème de performance sans devoir parcourir de longs fichiers journaux.

L’interface du NameNode (par défaut sur le port 9870) fournit une page d’accueil affichant la capacité totale du cluster, l’espace utilisé, le nombre de fichiers et de blocs, ainsi que des alertes en cas de blocs corrompus ou sous-répliqués. Elle permet également de naviguer directement dans l’arborescence HDFS, de visualiser les réplicas d’un bloc et de consulter des informations détaillées sur chaque DataNode.

En parallèle, l’interface du ResourceManager (port 8088) donne une vue dynamique des applications YARN en cours et terminées. Elle montre la consommation des ressources (CPU, mémoire) et permet de suivre la file d’attente des jobs soumis par les utilisateurs. Les interfaces des NodeManagers (port 8042) et des DataNodes (port 9864) offrent quant à elles une visibilité locale : suivi des conteneurs, journaux d’exécution et état des blocs hébergés.

Ces outils visuels simplifient considérablement la gestion quotidienne du cluster et facilitent la détection des anomalies. Par exemple, un administrateur peut repérer d’un coup d’œil un DataNode marqué « Dead » sur la page du NameNode et planifier une intervention avant que la situation ne compromette le facteur de réplication.

L’image ci-dessous présente l’écran principal de l’interface web du NameNode, qui fournit...

Synthèse

Ce chapitre a permis d’explorer en profondeur les mécanismes qui font d’HDFS bien plus qu’un simple système de stockage distribué. En comprenant comment Hadoop découpe, réplique, compresse et répartit les fichiers à travers le cluster, l’administrateur ou le data engineer acquiert une vision claire de la manière dont les données sont réellement gérées dans un environnement Big Data.

Nous avons d’abord vu que la manipulation de l’espace disque ne se limite pas à la compression des blocs. L’efficacité globale d’un cluster dépend de la capacité à combiner intelligemment plusieurs leviers : ajustement du facteur de réplication, choix du format de stockage, utilisation d’algorithmes de compression adaptés et gestion équilibrée des ressources matérielles. Cette approche intégrée permet non seulement de réduire les coûts liés au stockage, mais aussi d’améliorer les performances d’accès et de traitement des données.

La combinaison entre compression et réplication s’est révélée être un outil particulièrement puissant. Adapter dynamiquement le nombre de réplicas en fonction de la criticité des données permet d’alléger...