Table des matières:
Vidéo: Présentation de l'HDFS - Big Data 2024
Le système de fichiers distribués Hadoop est une approche polyvalente, résiliente et en cluster pour gérer les fichiers dans un environnement de données volumineuses. HDFS n'est pas la destination finale des fichiers. Il s'agit plutôt d'un service de données qui offre un ensemble unique de fonctionnalités nécessaires lorsque les volumes de données et la vélocité sont élevés. Parce que les données sont écrites une fois et ensuite lues plusieurs fois par la suite, plutôt que les lectures-écritures constantes d'autres systèmes de fichiers, HDFS est un excellent choix pour soutenir l'analyse de Big Data.
Big data NameNodes
HDFS fonctionne en découpant les gros fichiers en plus petits morceaux appelés blocs . Les blocs sont stockés sur des nœuds de données, et il est de la responsabilité du NameNode de savoir quels blocs sur quels nœuds de données constituent le fichier complet. Le NameNode agit également comme un «agent de la circulation», gérant tous les accès aux fichiers.
La collection complète de tous les fichiers du cluster est parfois appelée espace de noms du système de fichiers . C'est le travail de NameNode de gérer cet espace de noms.
Bien qu'il existe une relation forte entre le noeud NameNode et les noeuds de données, ils fonctionnent de manière "faiblement couplée". Cela permet aux éléments du cluster de se comporter de manière dynamique, en ajoutant des serveurs à mesure que la demande augmente. Dans une configuration typique, vous trouvez un NameNode et éventuellement un nœud de données s'exécutant sur un serveur physique dans le rack. Les autres serveurs exécutent uniquement des nœuds de données.
Les nœuds de données communiquent entre eux afin qu'ils puissent coopérer pendant les opérations normales du système de fichiers. Cela est nécessaire car les blocs d'un fichier sont susceptibles d'être stockés sur plusieurs nœuds de données. Puisque le NameNode est si critique pour le fonctionnement correct du cluster, il peut et doit être répliqué pour se prémunir contre une défaillance ponctuelle.
Nœuds Big Data
Les nœuds de données ne sont pas intelligents, mais ils sont résilients. Dans le cluster HDFS, les blocs de données sont répliqués sur plusieurs nœuds de données et l'accès est géré par NameNode. Le mécanisme de réplication est conçu pour une efficacité optimale lorsque tous les nœuds du cluster sont collectés dans un rack. En fait, le NameNode utilise un "ID de rack" pour suivre les nœuds de données dans le cluster.
Les nœuds de données fournissent également des messages "heartbeat" pour détecter et assurer la connectivité entre le nœud NameNode et les nœuds de données. Lorsqu'un signal de présence n'est plus présent, NameNode démonte le nœud de données du cluster et continue de fonctionner comme si rien ne s'était passé. Lorsque le signal de présence revient, il est ajouté au cluster de manière transparente par rapport à l'utilisateur ou à l'application.
L'intégrité des données est une caractéristique clé. HDFS prend en charge un certain nombre de fonctionnalités conçues pour assurer l'intégrité des données. Comme vous pouvez vous y attendre, lorsque les fichiers sont divisés en blocs et répartis sur différents serveurs du cluster, toute variation dans le fonctionnement d'un élément peut affecter l'intégrité des données. HDFS utilise les journaux de transactions et la validation de la somme de contrôle pour garantir l'intégrité du cluster.
Les journaux des transactions gardent une trace de chaque opération et sont efficaces pour l'audit ou la reconstruction du système de fichiers en cas de problème.
Les validations de somme sont utilisées pour garantir le contenu des fichiers dans HDFS. Lorsqu'un client demande un fichier, il peut vérifier le contenu en examinant sa somme de contrôle. Si la somme de contrôle correspond, l'opération de fichier peut continuer. Sinon, une erreur est signalée. Les fichiers de somme de contrôle sont cachés pour aider à éviter la falsification.
Les nœuds de données utilisent des disques locaux dans le serveur de base pour la persistance. Tous les blocs de données sont stockés localement, principalement pour des raisons de performances. Les blocs de données sont répliqués sur plusieurs nœuds de données, de sorte que la défaillance d'un serveur ne peut pas nécessairement corrompre un fichier. Le degré de réplication, le nombre de nœuds de données et l'espace de noms HDFS sont établis lorsque le cluster est implémenté.
HDFS pour Big Data
HDFS résout les problèmes liés aux gros volumes de données en découpant des fichiers dans une collection de blocs plus petits. Ces blocs sont répartis entre les nœuds de données du cluster HDFS et sont gérés par NameNode. Les tailles de bloc sont configurables et sont généralement de 128 mégaoctets (Mo) ou 256 Mo, ce qui signifie qu'un fichier de 1 Go consomme huit blocs de 128 Mo pour ses besoins de stockage de base.
HDFS est résilient, donc ces blocs sont répliqués dans le cluster en cas de panne du serveur. Comment HDFS suit-il toutes ces pièces? La réponse courte est le système de fichiers métadonnées .
Les métadonnées sont définies comme des "données sur les données". "Pensez aux métadonnées HDFS comme modèle pour fournir une description détaillée des éléments suivants:
-
Lorsque le fichier a été créé, consulté, modifié, supprimé, etc.
-
Où les blocs du fichier sont stockés dans le cluster < Qui a le droit d'afficher ou de modifier le fichier
-
Combien de fichiers sont stockés sur le cluster
-
Combien de nœuds de données existent dans le cluster
-
L'emplacement du journal des transactions pour le cluster
-
HDFS les métadonnées sont stockées dans le NameNode et, pendant le fonctionnement du cluster, toutes les métadonnées sont chargées dans la mémoire physique du serveur NameNode. Comme vous pouvez vous y attendre, plus le cluster est grand, plus l'empreinte des métadonnées est grande.
Que fait exactement un serveur de blocs? Consultez la liste suivante:
Stocke les blocs de données dans le système de fichiers local du serveur. HDFS est disponible sur de nombreux systèmes d'exploitation différents et se comporte de la même manière sur Windows, Mac OS ou Linux.
-
Stocke les métadonnées d'un bloc dans le système de fichiers local en fonction du modèle de métadonnées dans NameNode.
-
Effectue des validations périodiques des sommes de contrôle des fichiers.
-
Envoie des rapports réguliers au NameNode sur les blocs disponibles pour les opérations sur les fichiers.
-
Fournit des métadonnées et des données aux clients sur demande. HDFS prend en charge l'accès direct aux nœuds de données à partir des programmes d'application client.
-
Transmet les données à d'autres nœuds de données sur la base d'un modèle "pipelining".
-
Le placement des blocs sur les nœuds de données est essentiel à la réplication des données et à la prise en charge de la mise en pipeline de données. HDFS conserve une réplique de chaque bloc localement. HDFS prend au sérieux la réplication et la résilience des données.