Accueil

Thèmes

HDFS

Qu’est-ce que le système de fichiers distribué Hadoop HDFS ?
Découvrir les solutions de données cloud d’IBM S’inscrire pour recevoir les dernières informations sur l’IA
Illustration incluant des pictogrammes de nuages et un diagramme circulaire

Date de mise à jour : 14 juin 2024
Contributeur : Jim Holdsworth

Qu'est-ce que le HDFS ?

Le Hadoop Distributed File System (HDFS) est un système de fichiers conçu pour gérer de grandes quantités de données et fonctionner sur du matériel standard. Le HDFS est le système de stockage de données le plus utilisé avec Hadoop, et il permet de faire évoluer un cluster unique Apache Hadoop vers des centaines, voire des milliers de nœuds. Grâce à sa gestion efficace du big data avec un haut débit, le HDFS peut être utilisé comme un pipeline de données et est idéal pour prendre en charge des analyses de données complexes.

Le HDFS repose sur un cadre open source et constitue l’un des principaux composants d’Apache Hadoop, avec MapReduce et YARN. Le HDFS ne doit pas être confondu avec ou remplacé par Apache HBase, un système de gestion de bases de données non relationnel orienté colonnes, qui repose sur HDFS et répond mieux aux besoins de traitement des données en temps réel grâce à son moteur en mémoire.

IA générative et ML au service des entreprises

Découvrez les principaux avantages de l’IA générative et comment elle peut dynamiser les activités des entreprises.

Contenu connexe Obtenir l’eBook sur les entrepôts de données pour l’IA
Avantages du HDFS
Tolérance aux pannes et récupération rapide en cas de défaillance matérielle

Une instance du HDFS pouvant inclure des milliers de serveurs, la défaillance d’au moins un serveur est toujours possible. Le HDFS a été conçu pour détecter rapidement les pannes et se rétablir automatiquement. La réplication des données, avec plusieurs copies réparties sur de nombreux nœuds, permet de prévenir la perte de données. Le HDFS conserve au moins une copie sur un rack distinct des autres. Ce stockage de données dans un large cluster réparti sur plusieurs nœuds augmente la fiabilité. De plus, le HDFS peut prendre des instantanés de stockage pour sauvegarder des informations ponctuelles (PIT).

Accès aux données en continu

Le HDFS est principalement destiné au traitement par lots plutôt qu’à une utilisation interactive, c’est pourquoi sa conception favorise des débits de données élevés, facilitant l'accès continu aux ensembles de données.

Prise en charge de grands jeux de données

Le HDFS est adapté aux applications utilisant des ensembles de données allant de plusieurs gigaoctets à plusieurs téraoctets. Il offre une large bande passante agrégée et peut s’étendre à des centaines de nœuds dans un seul cluster, soutenant ainsi des systèmes de calcul haute performance (HPC). Les data lakes sont souvent stockés sur le HDFS. Les entrepôts de données ont également utilisé le HDFS, mais de moins en moins en raison de la complexité perçue de son utilisation.

Rentabilité économique

Comme les données sont stockées virtuellement, les coûts associés aux métadonnées du système de fichiers et au stockage des données dans l’espace de noms du système de fichiers peuvent être réduits.

Portabilité

Pour faciliter son adoption, le HDFS est conçu pour être portable sur plusieurs plateformes matérielles et compatible avec différents systèmes d’exploitation sous-jacents, notamment Linux, macOS et Windows. De plus, les data lakes Hadoop peuvent gérer des bases de données non structurées, semi-structurées et structurées pour une flexibilité maximale. Bien que Hadoop soit codé en Java, d'autres langages (comme C++, Perl, Python et Ruby) permettent de l'utiliser dans le domaine de la science des données.

Vitesse de traitement

Le HDFS utilise une architecture en cluster pour garantir un débit élevé. Pour réduire le trafic réseau, le système de fichiers Hadoop stocke les données dans les DataNodes, là où les calculs ont lieu, plutôt que de déplacer les données vers un autre emplacement pour le calcul. 

Évolutivité

Grâce à ses fonctions d'extensibilité horizontale et verticale, le HDFS peut être rapidement adapté aux besoins d'une organisation en matière de données. Un cluster peut comprendre des centaines, voire des milliers de nœuds.

Architecture et fonctionnement du HDFS

Le HDFS repose sur une architecture maître/esclave.

  • Un cluster HDFS comprend un NameNode, qui joue le rôle de serveur maître. Le NameNode surveille l'état de tous les fichiers, les autorisations d'accès et l'emplacement de chaque bloc. Le logiciel NameNode gère l'espace de noms du système de fichiers, et contrôle l'accès des clients aux fichiers et exécute des opérations telles que l'ouverture, la fermeture et le renommage des répertoires et fichiers.

    L'espace de noms divise également les fichiers en blocs et assigne ces blocs aux DataNodes, qui constituent la partie esclave du système. En configurant un seul NameNode par cluster, l'architecture du système simplifie la gestion des données et le stockage des métadonnées du HDFS. De plus, une sécurité renforcée est assurée en empêchant les données utilisateurs de transiter par le NameNode.

  • En général, chaque nœud d’un cluster dispose d'un DataNode qui gère le stockage des données sur ce nœud. Le logiciel DataNode gère la création, la suppression et la réplication des blocs, ainsi que les demandes de lecture et d'écriture. Chaque DataNode stocke les données HDFS dans son système de fichiers local, chaque bloc étant un fichier distinct. Les DataNodes sont les nœuds esclave (ou processus Hadoop fonctionnant en arrière-plan) et peuvent s'exécuter sur du matériel standard, permettant ainsi aux organisations de réduire les coûts.

Le NameNode et le DataNode sont des logiciels écrits pour fonctionner sur une large gamme de systèmes d'exploitation, souvent basés sur GNU/Linux. Le HDFS étant écrit en Java, toute machine supportant Java peut exécuter les logiciels NameNode et DataNode.

Les déploiements incluent souvent une machine dédiée à l'exécution du logiciel NameNode, tandis que les autres machines du cluster exécutent chacune une instance unique du logiciel DataNode. En cas de besoin, bien que rarement, il est possible de configurer plusieurs DataNodes sur une même machine.

Lorsque les données sont intégrées dans le HDFS, elles sont fragmentées en blocs et réparties sur les différents nœuds du cluster. Les données étant stockées dans plusieurs DataNodes, les blocs peuvent être répliqués sur d'autres nœuds pour permettre un traitement parallèle. Le système de fichiers distribués (DFS) propose des commandes pour accéder rapidement aux données, les récupérer, les déplacer et les visualiser. Grâce à la réplication des blocs de données sur plusieurs DataNodes, une copie peut être supprimée sans risquer de corrompre les autres copies. La taille par défaut des blocs dans le HDFS est de 128 Mo (Hadoop 2.x), une taille que certains peuvent considérer comme importante. Cependant, cette taille vise à minimiser les temps de recherche et à réduire la quantité de métadonnées nécessaires.

Pour minimiser les risques et accélérer le traitement, lorsqu'un DataNode cesse de communiquer avec le NameNode, ce DataNode est retiré du cluster et les opérations se poursuivent sans lui. Si ce DataNode redevient opérationnel par la suite, il est réassigné à un nouveau cluster.

Le HDFS propose des moyens d’accès flexibles aux données via différentes interfaces : une API Java native est incluse, un wrapper en langage C est disponible pour l’API Java, et il est également possible d’utiliser un navigateur HTTP pour parcourir les fichiers d’une instance HDFS. 

L'espace de noms du système de fichiers

Le HDFS est organisé selon une hiérarchie de fichiers traditionnelle, dans laquelle l’utilisateur peut créer des répertoires contenant plusieurs fichiers. La hiérarchie de l’espace de noms du système de fichiers fonctionne de manière similaire à celle des systèmes de fichiers classiques, où l’utilisateur peut créer, supprimer, déplacer ou renommer des fichiers et des répertoires.

L’espace de noms est géré par le NameNode, qui enregistre toutes les modifications apportées. Le nombre total de répliques à sauvegarder pour une application donnée peut être défini dans cette hiérarchie. Ce nombre représente le facteur de réplication pour ce fichier. Le facteur de réplication peut être défini lors de la création du fichier et ajusté ultérieurement en fonction des besoins.

Réplication des données

Pour garantir un stockage fiable, le HDFS stocke les fichiers volumineux dans plusieurs emplacements d’un grand cluster, chaque fichier étant constitué d’une séquence de blocs. Chaque bloc est stocké dans un fichier de la même taille, sauf le dernier bloc qui se remplit progressivement au fur et à mesure que des données y sont ajoutées. 

Pour une protection renforcée, les fichiers HDFS ne peuvent être écrits qu’une seule fois et uniquement par un auteur à la fois. Afin de s’assurer que toutes les données sont répliquées comme prévu, le NameNode reçoit périodiquement un signal de heartbeat (rapport de statut) et un blockreport (incluant l’ID du bloc, l’estampille de génération et la longueur de chaque réplique de bloc) de chaque DataNode dans le cluster. La réception de ce signal indique que le DataNode fonctionne correctement.

Le NameNode sélectionne l’ID de rack pour chaque DataNode grâce à un processus appelé Hadoop Rack Awareness, qui permet de prévenir la perte de données en cas de défaillance d’un rack entier. Cela permet également d’utiliser la bande passante de plusieurs racks pour la lecture des données.

Exemple de HDFS et cas d'utilisation

Prenons l'exemple d'un fichier contenant les numéros de téléphone d'un pays entier. Les numéros des personnes dont le nom de famille commence par A pourraient être stockés sur le serveur 1, ceux commençant par B sur le serveur 2, et ainsi de suite. Avec Hadoop, des fragments de cet annuaire téléphonique seraient répartis sur un seul cluster, et pour reconstituer l'annuaire complet, une application aurait besoin des blocs provenant de chaque serveur du cluster.

Afin de garantir une haute disponibilité en cas de défaillance d’un serveur, le HDFS réplique par défaut ces fragments sur au moins deux serveurs supplémentaires. (Cette redondance peut être augmentée ou réduite pour chaque fichier ou pour l'ensemble de l'environnement. Par exemple, un cluster Hadoop de développement n'a généralement pas besoin d'une redondance de données.)

Cette redondance permet également au cluster Hadoop de répartir le travail en petits segments et d’exécuter ces tâches sur tous les serveurs du cluster, favorisant ainsi une meilleure évolutivité. En outre, les organisations bénéficient de la localité des données, un atout essentiel lorsqu'elles travaillent avec de grands ensembles de données.

Le HDFS peut également être utilisé pour soutenir l'intelligence artificielle (IA) et le machine learning (ML) en passant efficacement à l’échelle. Tout d'abord, en stockant les données en quantités suffisantes pour entraîner les modèles de ML, et ensuite en facilitant l'accès à ces énormes jeux de données.

Toute organisation qui capture, stocke et utilise de vastes jeux de données, jusqu'à des pétaoctets, pourrait envisager l'utilisation de HDFS. Quelques exemples d'utilisation dans différentes industries montrent comment HDFS peut être implémenté :

  • Énergie : lorsqu'une entreprise utilise des unités de mesure de phase (PMU) pour surveiller les performances de ses réseaux intelligents de transmission, elle peut accumuler d'énormes volumes de données, enregistrant des milliers de données par seconde. Le HDFS pourrait être le système de fichiers fiable et rentable nécessaire dans ce cas.

  • Santé : le volume des dossiers médicaux ne cesse de croître. Les données des équipements médicaux et des capteurs des patients peuvent être collectées et stockées de manière efficace pour des soins plus rapides et des recherches plus approfondies.

  • Le marketing : les données provenant des systèmes de gestion de la relation client (CRM), des points de vente, des réponses aux campagnes et des médias sociaux, dont une grande partie est non structurée, doivent être collectées pour analyse et pour orienter les futures stratégies marketing. Les clusters HDFS peuvent offrir une solution économique pour le stockage et l'analyse de ces grandes quantités de données.

  • Pétrole et gaz : un cluster HDFS peut aider à unifier toutes les données provenant de différentes sources pour les rendre accessibles aux analyses de big data. Cela inclut des modèles terrestres en 3D, des vidéos, des achats clients ou encore des données de capteurs d'équipement.

  • Vente au détail : pour mieux comprendre leurs clients, les détaillants peuvent regrouper et analyser des données provenant de multiples sources. Cela inclut les registres de vente, les interactions avec le service client et les médias sociaux, qu'il s'agisse de données structurées ou non structurées, dans le but de développer de nouvelles stratégies d'engagement.

  • Télécommunications : le HDFS peut aider les entreprises de télécommunications à construire des réseaux robustes, à réaliser de la maintenance prédictive, à identifier des options prometteuses pour l'expansion des réseaux et à analyser le comportement des clients.
L’histoire de HDFS

Selon les cofondateurs Mike Cafarella et Doug Cutting, Hadoop trouve son origine dans un article sur le Google File System, publié en 2003.Un second article a suivi, intitulé « MapReduce : Simplified Data Processing on Large Clusters ». Le développement d'un premier moteur de recherche nommé Apache Nutch a commencé, mais Doug Cutting a ensuite transféré ce travail chez Yahoo en 2006.

Hadoop tire son nom d'un éléphant en peluche appartenant au fils de M. Cutting (d'où le logo). Le code initial de Hadoop reposait largement sur Nutch, mais a résolu les problèmes de mise à l’échelle, tout en intégrant les premières versions de HDFS et de MapReduce. Depuis, la suite de programmes dans l’écosystème Hadoop n’a cessé de croître.

Depuis, la suite de programmes dans l’écosystème Hadoop n’a cessé de croître. Outre HDFS, l’écosystème inclut également : HBase (une base de données NoSQL), Mahout, Spark MLLib (bibliothèques d'algorithmes pour le machine learning), MapReduce (traitement des données basé sur la programmation), Oozie (planificateur de tâches), PIG et HIVE (services de traitement des données basés sur des requêtes), Solar et Lucene (pour la recherche et l'indexation), Spark (traitement des données en mémoire), YARN (Yet Another Resource Negotiator), Zookeeper (coordination des clusters).

Les logiciels open source de l’écosystème Hadoop sont désormais gérés par l’Apache Software Foundation1, une communauté mondiale de développeurs et de contributeurs de logiciels.

 

Solutions connexes
Un entrepôt de données ouvert, hybride et gouverné

watsonx.data™ est désormais disponible : un entrepôt de données adapté à vos besoins, conçu sur une architecture de type data lakehouse ouverte pour vous permettre de faire évoluer les workloads d’IA, et ce pour toutes vos données, où qu’elles se trouvent.

Découvrir watsonx.data
Améliorez et accélérez vos analyses avec les solutions big data d’IBM

IBM et Cloudera se sont associés pour offrir une distribution Hadoop d’entreprise de pointe, comprenant un écosystème intégré de produits et de services pour accélérer les analyses à grande échelle.

Découvrir les opportunités en matière de big data avec IBM
Ressources Trinité des plateformes de données : concurrentes ou complémentaires ?

Au moins trois solutions émergent actuellement en matière de plateformes de données. Découvrez les relations entre data lakehouse, data fabric et data mesh.

Comprendre le big data au-delà du battage médiatique

Lisez cette introduction pratique à la nouvelle génération d’architectures de données. Elle présente le rôle du cloud et des technologies NoSQL et aborde les aspects pratiques de la sécurité, de la confidentialité et de la gouvernance.

Qu’est-ce que Presto ?

Presto offre aux entreprises de toutes tailles un moyen rapide et efficace d’analyser des données volumineuses provenant de diverses sources, y compris des systèmes sur site et dans le cloud.

Passez à l’étape suivante

Faites évoluer les workloads d’IA pour toutes vos données n’importe où avec IBM watsonx.data, un entrepôt de données adapté à vos besoins basé sur une architecture data lakehouse ouverte.

Découvrir watsonx.data Réserver une démo en direct
Notes de bas de page

1 « Apache software foundation » (lien externe à ibm.com)