Qu'est-ce que le système de fichiers distribué Hadoop (HDFS) ? Architecture, fonctionnalités et opérations
Publié: 2020-02-03Hadoop Distributed File System ou HDFS est le système de stockage principal de Hadoop. Il stocke de gros fichiers de données qui s'exécutent sur du matériel de base. Ce système de stockage est évolutif, facilement extensible et tolérant aux pannes.
Lorsqu'il y a trop de données stockées sur une machine physique, il devient que le stockage est divisé sur plusieurs machines pour éviter la perte de données. HDFS est l'un de ces systèmes de stockage de fichiers distribués qui gère les opérations de stockage sur de nombreuses machines physiques. Voici un tutoriel HDFS pour vous permettre de mieux comprendre le fonctionnement de ce système. Commençons par son architecture.
Table des matières
Architecture HDFS
Hadoop Distributed File System a une architecture maître-esclave avec les composants suivants :
- Namenode : C'est le matériel de base qui contient à la fois le logiciel namenode et le système d'exploitation Linux/GNU. Le logiciel Namenode peut fonctionner sans problème sur du matériel de base sans rencontrer le moindre problème. Le système avec namenode comme composant fonctionne comme serveur maître. Il exécute des tâches qui incluent la régulation de la manière dont les clients accèdent aux fichiers, la gestion de l'espace de noms du système de fichiers et l'exécution d'opérations, notamment l'ouverture, la fermeture et le changement de nom des répertoires et des fichiers.
- Datanode : Il s'agit d'un matériel de base qui contient le logiciel du nœud de données et le système d'exploitation Linux/GNU. Les nœuds d'un cluster auront toujours des nœuds de données qui leur sont associés. Ces nœuds sont responsables de la gestion du stockage du matériel/système de base. Certaines des tâches effectuées par les nœuds de données incluent des opérations de lecture/écriture en fonction de la demande du client et de la création, de la réplication et de la suppression de blocs en fonction des instructions données par le namenode.
- Bloc : L'intégralité des données utilisateur est stockée dans des fichiers HDFS. Chaque fichier appartenant à un système de fichiers particulier est divisé en un ou plusieurs segments, qui sont ensuite stockés dans des nœuds de données. Les segments de fichier dans lesquels les fichiers sont divisés sont des blocs. Ainsi, la plus petite donnée que HDFS est capable de lire ou d'écrire est un bloc. Initialement, chaque bloc a une taille de 64 Mo. Mais, cette taille peut être augmentée en fonction des changements de configuration HDFS.
L'architecture HDFS donne une image claire et sans ambiguïté des travaux HDFS. Il se compose de plusieurs datanodes mais d'un seul namenode. Les métadonnées sont stockées dans le namenode tandis que le travailleur réel des deux types de nœuds est le datanode. Les nœuds sont organisés en différents racks sur lesquels les blocs de données sont stockés pour améliorer la tolérance aux pannes et la fiabilité des données. Les clients doivent interagir avec le namenode pour lire/écrire un fichier. Le cluster comporte plusieurs nœuds de données qui utilisent le disque local pour stocker les données disponibles. Datanode et namenode sont perpétuellement en contact l'un avec l'autre. Datanode est également responsable de la réplication des données à l'aide de la fonction de réplication vers différents datanodes.
Les opérations de lecture et d'écriture dans HDFS ont lieu au plus petit niveau, c'est-à-dire au niveau du bloc. Le concept de réplication de données est au cœur du fonctionnement de HDFS - la haute disponibilité des données est assurée lors de la défaillance d'un nœud en créant des répliques de blocs et en les distribuant dans l'ensemble du cluster.
Opérations HDFS
Les systèmes de fichiers HDFS et Linux sont assez similaires. Ainsi, HDFS nous permet d'effectuer toutes les opérations que nous avons l'habitude d'effectuer avec les systèmes de fichiers locaux - nous pouvons créer un directeur, modifier les autorisations, copier des fichiers et bien plus encore. Nous avons également plusieurs droits d'accès aux fichiers, y compris la lecture, l'écriture et l'exécution.

Opération de lecture dans HDFS : Si vous souhaitez lire un fichier stocké dans HDFS, vous devrez interagir avec namenode. Comme déjà mentionné, toutes les métadonnées sont stockées dans le namenode. Une fois que vous interagissez avec namenode, il vous donnera l'adresse du datanode où le fichier que vous recherchez est stocké. Vous pouvez ensuite interagir avec le datanode dont l'adresse vous a été donnée par namenode, puis lire les informations à partir de là.
Vous interagissez avec l'API du système de fichiers, qui demande à namenode de partager l'adresse du bloc. Avant de donner ces informations, namenode effectue une vérification pour savoir si vous avez ou non le droit d'accéder à ces données. Une fois cette vérification effectuée, namenode partage l'emplacement du bloc ou refuse l'accès en raison de restrictions.
Le namenode vous donne une forme de jeton, que vous devez montrer au datanode respectif pour accéder à un fichier. Il s'agit d'une forme de mécanisme de sécurité utilisé par HDFS pour s'assurer que la bonne personne accède aux données. Le datanode ne vous laissera lire le fichier qu'après avoir affiché le jeton.

Opération d'écriture : L'opération d'écriture suit le même schéma initial. Vous devez demander au namenode de vous permettre d'écrire des données. En retour, il vous fournira l'emplacement du datanode sur lequel l'opération d'écriture doit être effectuée. Dès que vous avez terminé d'effectuer cette opération, le datanode commencera à répliquer ces blocs de données écrites sur d'autres datanodes. Une fois la réplication effectuée, vous recevrez un accusé de réception. Le mécanisme d'authentification dans l'opération d'écriture est le même que dans l'opération de lecture.

Fonctionnalités HDFS
- Disponibilité : Il n'y a pas trop de systèmes de fichiers qui accompagnent la haute disponibilité de HDFS. Le système de fichiers suit un mécanisme de réplication des données sous la forme de répliques de blocs sur les nœuds de données (esclaves) à travers un cluster. Pour accéder à ces données, vous devez interagir avec des nœuds de données contenant les blocs d'informations qu'ils recherchent.
- Fiabilité : Hadoop Distributed File System est un système de stockage de données extrêmement fiable. La quantité de données qui peut être stockée sur les gammes HDFS en pétaoctets. Il utilise un cluster pour stocker toutes ses données, qui sont séparées pour former des blocs. Il utilise ensuite des nœuds du cluster pour stocker ces blocs.
- Tolérance aux pannes : Cette fonctionnalité est la force de travail de HDFS dans des conditions qui ne sont pas aussi propices qu'elles le sont habituellement. HDFS tolère les défauts comme aucun autre système de fichiers ne le fait. Il protège vos données contre les effets de tout imprévu, même dans le futur. Comme déjà mentionné, la réplication des données est effectuée sur différentes machines. Que se passe-t-il lorsque l'une de ces machines cesse de fonctionner ? Cela aurait pu être un problème important avec n'importe quel autre système, mais pas HDFS. HDFS vous permet d'accéder à vos données depuis n'importe quelle autre machine disposant également d'une copie des blocs de données que vous recherchez. C'est ce qu'on appelle la véritable tolérance aux pannes.
- Évolutivité : HDFS utilise différents nœuds dans un cluster pour stocker les données. Lorsque les besoins en stockage augmentent, vous pouvez toujours aller de l'avant et faire évoluer le cluster. Il s'agit d'une autre fonctionnalité unique à HDFS. Le système de distribution de fichiers vous offre deux mécanismes pour mettre à l'échelle le cluster : l'évolutivité horizontale et verticale.
- Réplication : la réplication est une fonctionnalité qui distingue HDFS des autres systèmes de stockage. La réplication minimise les instances de perte de données dues à un événement défavorable, tel qu'une panne de nœud, une panne matérielle, etc. Le processus de réplication est effectué régulièrement et sur des machines différentes. Ainsi, il n'y a pas de perte de données si une machine tombe en panne. Vous pouvez utiliser n'importe quelle autre machine pour obtenir vos données.
Objectifs HDFS
- Gestion d'énormes ensembles de données : contrairement à d'autres systèmes de distribution de fichiers, HDFS dispose de l'architecture requise pour gérer les applications qui contiennent d'énormes ensembles de données. Selon l'énormité des ensembles de données en question, il peut avoir des centaines de nœuds pour chaque cluster.
- Détection et récupération des pannes : Peu de gens peuvent battre HDFS dans ses capacités associées à la détection des pannes, puis à leur traitement approprié. Un grand nombre de matériel de base en question rend HDFS exposé à des défaillances fréquentes des composants. Cependant, ce n'est pas un inconvénient. Tout système traitant d'un tel matériel de base est ouvert à l'échec. Cependant, la question demeure de savoir si le système est capable ou non de détecter rapidement et automatiquement ces défaillances et de fournir une récupération en même temps. HDFS est certainement capable.
- Débit accru : HDFS traite chaque tâche efficacement car le calcul réel est effectué à proximité des données elles-mêmes. Ceci est particulièrement important lorsque nous traitons d'énormes ensembles de données. Ce mécanisme augmente le débit et élimine considérablement le problème du trafic réseau.
Pour conclure, nous voudrions dire que HDFS peut stocker d'énormes quantités de données de manière fiable et sans ressentir les effets d'une panne matérielle. Il est également hautement tolérant aux pannes, hautement disponible et hautement évolutif.
Pour parcourir les profondeurs de Hadoop et devenir un expert, consultez la certification PG d'upGrad & BITS Pilani en Big Data & Analytics. Obtenez une expérience pratique, en tête-à-tête avec des experts de l'industrie, un mentor dédié, le statut d'ancien élève de BITS Pilani, et plus encore.
Si vous souhaitez en savoir plus sur le Big Data, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, pratique pratique ateliers, plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.