FAQ HadoopConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 78, dernière mise à jour : 10 août 2020 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs et de la traduction de la documentation officielle d'Hadoop.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
L'équipe Big Data
- Qu'est-ce que HBase ?
- Qu'est-ce qu'un HMaster dans HBase ? Quelle est sa fonction ?
- Qu'est-ce qu'un serveur de région (RegionServer) dans HBase ?
- Quels sont les principaux composants d'un serveur de région dans HBase ?
- Quel est le rôle de ZooKeeper dans un cluster HBase ?
- Quels sont les différents modes d'installation/configuration de HBase ?
- Comment la réplication se fait-elle dans un cluster HBase ?
Apache HBase est un système de stockage distribué et évolutif qui offre un accès aléatoire en lecture/écriture en temps réel à de très grands ensembles de données hébergés sur HDFS. L'objectif du projet HBase est d'héberger de très grandes tables avec des milliards de lignes et des millions de colonnes sur des clusters de machines standard. Apache HBase est une base de données open source, versionnée et non relationnelle, inspirée du système de stockage distribué BigTable de Google. Comme HDFS, HBase implémente une architecture maître/travailleur : la gestion des données est implémentée par des serveurs de région, qui sont eux-mêmes gérés par un serveur maitre (HBase Master ou HMaster). HBase exploite HDFS pour le stockage persistant de données, ce qui lui permet de tirer parti de toutes les fonctionnalités avancées fournies par HDFS, notamment les sommes de contrôle, la réplication et le failover (basculement vers un équipement ou système alternatif en cas de panne).
Les principaux composants de l'architecture HBase sont le HMaster et les serveurs de région (RegionServers). Notons qu'il est possible de configurer plusieurs HMasters backups pour assurer la haute disponibilité du cluster HBase. Une instance HBase distribuée dépend également de ZooKeeper, un logiciel de gestion de configuration et de coordination de systèmes distribués.
Le HMaster est le serveur maitre dans une architecture HBase. Il assure deux principales fonctions. La première consiste à surveiller les serveurs de région dans le cluster HBase en vue de détecter des défaillances (via ZooKeeper) et gérer les (ré)affectations de régions. Au démarrage du cluster HBase, le HMaster affecte les régions ou partitions de tables aux différents serveurs de région. Le HMaster peut également procéder à une réaffectation des régions à des fins d'équilibrage de charge ou de récupération lorsqu'un RegionServer tombe en panne. Étant donné que toutes les données de région sont stockées sur HDFS, le HMaster peut facilement les réaffecter à n'importe quel autre serveur de région opérationnel.
Le HMaster a également une fonction d'administration : il gère les opérations de définition de données (création, suppression des tables).
Un serveur de région est un serveur travailleur dans une architecture HBase. Pour stocker une table, HBase partitionne cette table en régions, chaque région étant une plage continue de lignes triées (par clé primaire). Dans HBase, une table peut donc être composée d'une ou plusieurs régions. Ces régions sont réparties de manière aléatoire sur des serveurs qu'on appelle serveurs de région. Les serveurs de région hébergent plusieurs régions de différentes tables.
Il est important de noter que les régions d'une même table peuvent être hébergées sur différents serveurs, mais chaque région est gérée par un seul RegionServer à la fois. Les RegionServers sont chargés de répondre aux demandes de lecture et d'écriture des clients et de gérer les régions de données.
Les principaux composants d'un RegionServer sont les suivants :
- le WAL (Write Ahead Log) ou journal à écriture anticipée : c'est un fichier sur le système de fichiers distribué qui permet d'enregistrer toutes les modifications de données. C'est un fichier important dans la mesure où si le serveur tombe en panne, le WAL peut être utilisé pour reconstituer l'état du serveur juste avant la panne. Cela signifie également que si l'écriture d'un enregistrement dans le WAL échoue, toute l'opération doit être considérée comme un échec ;
- le MemStore : c'est un cache de données en mémoire qui contient des paires clé/valeur représentant les dernières modifications de données. Son principal rôle est de stocker de nouvelles données qui n'ont pas encore été écrites sur le disque. Toutes les modifications de données sont d'abord écrites dans le WAL puis stockées en mémoire dans le MemStore avant d'être écrites sur le disque. En cas de panne d'un RegionServer, HBase utilise le journal à écriture anticipée pour récupérer les données du MemStore qui n'ont pas encore été vidées sur le disque. Le WAL est donc utilisé à des fins de récupération. Le MemStore permet, quant à lui, d'améliorer les performances globales de HBase en fournissant autant de données que possible directement depuis la mémoire ;
- le BlockCache : c'est un cache de lecture. Le rôle principal du BlockCache est de stocker en mémoire les données fréquemment lues. Lorsqu'il se remplit, il libère de l'espace en effaçant les données les moins récemment utilisées ;
- HFile : c'est un format de fichier HDFS spécialisé pour HBase. L'implémentation de HFile dans un serveur de région est responsable de la lecture et de l'écriture de fichiers vers et depuis HDFS. Les fichiers HFiles stockent les lignes sous forme de paires clé/valeur triées sur le disque.
Contrairement à Hadoop où la communication entre le client et le cluster se fait par l'intermédiaire du NameNode, dans HBase, le client ne passe pas par le HMaster. Le client communique avec ZooKeeper pour savoir dans quels RegionServers sont situées les données dont il a besoin. ZooKeeper fournit cette information au client, qui pourra alors directement s'adresser au RegionServer contenant les données. ZooKeeper est utilisé pour maintenir les informations de configuration et la communication entre les serveurs de région et les clients. Il assure également la synchronisation du cluster.
Comme avec Hadoop, HBase peut être configuré en trois modes : autonome, pseudo-distribué et distribué. Par défaut, HBase est configuré en mode autonome ou local. Dans ce mode de fonctionnement, une seule JVM héberge le maître HBase, un serveur de région HBase et une instance locale de ZooKeeper. HBase stocke vos données sur le système de fichiers local, plutôt que sur HDFS. Le mode autonome n'est approprié que pour des tests.
Le mode pseudo-distribué est similaire au mode autonome à la différence que chacun des processus s'exécute dans une JVM distincte. Si en mode pseudo-distribué, le HMaster, le RegionServer et ZooKeeper s'exécutent dans des JVM séparées, ils demeurent sur le même serveur. C'est la différence entre le pseudo-distribué et le mode distribué. Dans le mode distribué, les processus s'exécutent carrément sur plusieurs serveurs d'un cluster.
La réplication HBase est différente de la réplication dans HDFS. HBase est construit sur HDFS, qui fournit déjà la réplication des blocs de données qui composent les tables HBase. Dans HBase, la réplication fait donc référence à la synchronisation de l'état d'un cluster avec celui d'un autre cluster, en utilisant le journal à écriture anticipée (WAL) du cluster source pour propager les modifications. Un cluster HBase peut être une source (cluster actif, ce qui signifie qu'il écrit de nouvelles données), une destination (cluster passif, ce qui signifie qu'il reçoit les données) ou peut remplir les deux rôles à la fois.
Cela dit, il existe trois modes de configuration de réplication HBase : le mode maitre/travailleur, le mode maitre/maitre et le mode cyclique. Dans le mode maitre/travailleur, la réplication est effectuée dans une seule direction, c'est-à-dire que les transactions d'un cluster sont poussées vers un autre cluster. Notez que le cluster travailleur est comme n'importe quel autre cluster et peut donc avoir ses propres tables. Dans le mode maitre/maitre, la réplication se fait dans les deux sens, pour des tables différentes ou identiques, c'est-à-dire que les deux clusters agissent à la fois en tant que maître et travailleur. La réplication en mode cyclique implique plus de deux clusters HBase, l'un d'eux pouvant être dans une configuration maitre/maitre vis-à-vis d'un cluster et en même temps dans une configuration maitre/travailleur par rapport à un cluster.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.