Qu'est-ce que HDFS (système de fichiers distribué Hadoop)
Lorsque nous travaillons avec notre ordinateur, nous enregistrons des fichiers, des images ou des vidéos sur le disque dur intégré. Cependant, lorsque nous travaillons avec une quantité massive de données, nous ne pouvons pas les stocker sur un seul ordinateur car cela occuperait plus de mémoire qu'elle n'en a.
Introduction à HDFS
Ici, nous sommes confrontés à des problèmes différents. Que se passerait-il si l’un des ordinateurs tombait en panne ? Nous perdrions une partie de nos données. Pour cette raison, les systèmes de fichiers distribués doivent être tolérants aux pannes pour éviter la perte de données.
Hadoop intègre son propre système de fichiers appelé Hadoop Distributed Filesystem ou mieux connu sous le nom de HDFS. Ce système est conforme à ce qui a été mentionné ci-dessus. Il est capable de stocker des millions et des millions de données dans un réseau distribué d'ordinateurs et est également tolérant aux pannes, empêchant la perte de données lors d'une erreur dans l'un des nœuds.
Dans cet article de blog, nous présenterons HDFS pour comprendre son importance, ses caractéristiques et le flux de données entre les frameworks Big Data.
Fonctionnalités du système de fichiers Hadoop
Fichiers très volumineux
Les clusters d'ordinateurs Hadoop peuvent stocker des fichiers qui occupent beaucoup de mémoire. Aujourd'hui, il existe des systèmes Hadoop qui exécutent des applications avec plusieurs pétaoctets de données.
Enregistré en blocs
Les fichiers dans HDFS sont divisés en blocs d'environ 128 Mo de mémoire. Ces blocs sont dupliqués et stockés dans différents nœuds. Avoir plusieurs copies du même bloc permet de récupérer les données en cas de panne de l'un des nœuds.
Convient à tout type de matériel
Hadoop peut fonctionner sur des clusters construits avec des ordinateurs de nombreux fabricants différents. Il est conçu pour être facile à installer et à utiliser de manière simple, de sorte qu'il semble que nous travaillons avec un seul ordinateur.
Haute évolutivité
HDFS évolue horizontalement, ajoutant plus de nœuds (ordinateurs) dans le système de cluster. HDFS prend en charge des milliers de nœuds et peut développer des applications distribuées rapidement et en toute sécurité.
Accès à haute latence
Les applications nécessitant une faible latence ne fonctionnent pas bien avec HDFS car ce système est conçu pour fournir une grande quantité de données. Il existe d'autres systèmes de stockage de données dont l'accès est plus rapide, comme HBase, une base de données distribuée non relationnelle orientée colonnes.
Tolérance de panne
HDFS est un système redondant. Cela signifie que pour chaque bloc, 3 copies sont générées et stockées sur des serveurs différents. Cela permet que si l'un des ordinateurs perd les informations, elles puissent être récupérées rapidement.
Composants du système HDFS
NomNoeud
Le NameNode est le nœud maître chargé d'organiser et de gérer l'ensemble du cluster. Contient les métadonnées qui spécifient dans quel DataNode chaque bloc d'informations est stocké.
De plus, le NameNode gère également l'accès aux DataNodes des clients.
Si le NameNode tombe en panne, les informations de bloc ne peuvent pas être récupérées et les informations HDFS sont perdues. Pour éviter cela, un NameNode de rechange alternatif peut être activé pour prendre le relais en cas de panne du principal.
Nœuds de données
Les datanodes sont les esclaves du système. Ils stockent et récupèrent des blocs de données sur commande du Namenode ou du client.
Flux de données entre le client et HDFS
Pour comprendre le fonctionnement d'une application qui utilise un système de fichiers distribué comme HDFS, il est important de comprendre comment s'effectue le flux de données entre HDFS, le client, le nœud de nom et les nœuds de données.
Lorsque le client demande l'autorisation de lire des fichiers, un appel est effectué au nœud de nom et il procède à la détermination de l'emplacement des blocs d'informations dans les nœuds de données.
Une fois trouvés, les datanodes sont triés selon leur topologie par proximité avec le client.
Les informations du premier bloc sont envoyées au client et une fois terminée, la connexion au datanode est fermée et la connexion au datanode du bloc suivant est ouverte.
Cela se produit de manière transparente pour le client où il voit un flux continu de données.
Si, au cours du processus, une erreur survient avec le nœud de données d'un bloc spécifique, le nœud de données suivant contenant le bloc d'informations le plus proche du client sera recherché. C'est ce qui permet à HDFS d'être tolérant aux pannes.
Applications Big Data prises en charge par le système de fichiers distribué Hadoop
De nombreux frameworks Big Data s'exécutent sur le système de fichiers distribué de Hadoop. Certains de ces programmes sont Spark, Hive, Pig ou Mahout.
Tous ces frameworks jouent le rôle de clients. Ils appellent HDFS pour récupérer les données nécessaires et y effectuer différentes opérations avant de les montrer à l'utilisateur.
Par exemple, Mahout utilise les données stockées dans HDFS pour créer des modèles d'apprentissage automatique ou Hive pour extraire des données avec des instructions SQL similaires au langage naturel humain.
Meilleurs cours pour apprendre Hadoop et HDFS
Maintenant que vous savez ce qu'est HDFS, souhaitez-vous apprendre à le mettre en œuvre de manière pratique pour vos propres projets ?
Ci-dessous, nous vous montrons quelques-uns des cours en ligne où vous pouvez apprendre en profondeur cette technologie Big Data, HDFS et Hadoop.
- Le Hadoop pratique ultime : apprivoisez votre Big Data !
- Introduction au Big Data avec Hadoop from Scratch