Table des matières:
Vidéo: Hadoop&cie - 01 - Introduction à Hadoop 2024
Dans un cluster Hadoop, chaque nœud de données (également appelé nœud esclave ) exécute un processus d'arrière-plan nommé DataNode. Ce processus en arrière-plan (également appelé daemon ) conserve la trace des tranches de données stockées par le système sur son ordinateur. Il communique régulièrement avec le serveur maître pour HDFS (connu sous le nom de NameNode) afin de rendre compte de l'intégrité et de l'état des données stockées localement.
Les blocs de données sont stockés en tant que fichiers bruts dans le système de fichiers local. Du point de vue d'un utilisateur Hadoop, vous n'avez aucune idée de quel nœud esclave possède les parties du fichier que vous devez traiter. A partir de Hadoop, vous ne voyez pas de blocs de données ni comment ils sont distribués à travers le cluster - tout ce que vous voyez est une liste de fichiers dans HDFS.
La complexité de la distribution des blocs de fichiers sur le cluster vous est cachée - vous ne savez pas à quel point tout cela est compliqué, et vous n'avez pas besoin de pour connaître. En réalité, les nœuds esclaves ne savent même pas ce qu'il y a dans les blocs de données qu'ils stockent. C'est le serveur NameNode qui connait les mappings dont les blocs de données composent les fichiers stockés dans HDFS.
Mieux vivre grâce à la redondance
Un principe de conception de base de HDFS est le concept de minimisation du coût des nœuds esclaves individuels en utilisant des composants matériels de base. Pour les systèmes massivement évolutifs, cette idée est judicieuse car les coûts augmentent rapidement lorsque vous avez besoin de centaines ou de milliers de nœuds esclaves. L'utilisation de matériel à moindre coût a cependant des conséquences, car les composants individuels ne sont pas aussi fiables que les matériels plus coûteux.
Lorsque vous choisissez des options de stockage, tenez compte de l'impact de l'utilisation de lecteurs de produits de base plutôt que de lecteurs de qualité professionnelle plus onéreux. Imaginez que vous disposiez d'un cluster à 750 nœuds, chaque nœud disposant de 12 unités de disque dur dédiées au stockage HDFS.
Sur la base d'un taux d'échec annuel (AFR) de 4% pour les disques durs de base (un disque dur donné présente une probabilité d'échec de 4% au cours d'une année donnée), votre cluster risque de rencontrer un disque dur échec tous les jours de l'année.
Étant donné qu'il peut y avoir tellement de nœuds esclaves, leur défaillance est également fréquente dans les clusters plus grands comptant des centaines ou plus de nœuds. Avec cette information à l'esprit, HDFS a été conçu en supposant que tous les composants matériels , même au niveau du nœud esclave, ne sont pas fiables.
HDFS surmonte le manque de fiabilité des composants matériels individuels par le biais de la redondance: c'est l'idée derrière ces trois copies de chaque fichier stocké dans HDFS, distribué dans tout le système.Plus spécifiquement, chaque bloc de fichiers stocké dans HDFS comporte au total trois répliques. Si un système rompt avec un bloc de fichier spécifique dont vous avez besoin, vous pouvez vous tourner vers les deux autres.
Esquisse de la conception du serveur de nœuds esclaves
Pour équilibrer des facteurs importants tels que le coût total de possession, la capacité de stockage et les performances, vous devez planifier soigneusement la conception de vos nœuds esclaves.
Vous voyez souvent des nœuds esclaves maintenant où chaque nœud a généralement entre 12 et 16 unités de disque dur de 3 To connectées localement. Les nœuds esclaves utilisent des processeurs dual-socket modérément rapides avec six à huit cœurs chacun - pas de démons de vitesse, en d'autres termes. Ceci est accompagné de 48 Go de RAM. En bref, ce serveur est optimisé pour un stockage dense.
HDFS étant un système de fichiers au niveau de l'espace utilisateur, il est important d'optimiser le système de fichiers local sur les nœuds esclaves pour qu'il fonctionne avec HDFS. À cet égard, une décision à fort impact lors de la configuration de vos serveurs consiste à choisir un système de fichiers pour l'installation Linux sur les nœuds esclaves.
Ext3 est le système de fichiers le plus couramment déployé car il s'agit de l'option la plus stable depuis plusieurs années. Jetez un oeil à Ext4, cependant. C'est la prochaine version d'Ext3, et elle a été disponible assez longtemps pour être largement considérée comme stable et fiable.
Plus important encore pour nos besoins, il dispose d'un certain nombre d'optimisations pour gérer les gros fichiers, ce qui en fait un choix idéal pour les serveurs de nœuds esclaves HDFS.
N'utilisez pas Linux Logical Volume Manager (LVM) - il représente une couche supplémentaire entre le système de fichiers Linux et HDFS, ce qui empêche Hadoop d'optimiser ses performances. Plus précisément, LVM agrège les disques, ce qui gêne la gestion des ressources que font HDFS et YARN, en fonction de la distribution des fichiers sur les disques physiques.