Mécanisme de stockage dans HBase
HBase est une base de données orientée colonnes et les données sont stockées dans des tables. Les tables sont triées par RowId. Comme indiqué ci-dessous, HBase a RowId, qui est la collection de plusieurs familles de colonnes présentes dans la table.
Les familles de colonnes présentes dans le schéma sont des paires clé-valeur. Si nous observons en détail chaque famille de colonnes ayant plusieurs nombres de colonnes. Les valeurs de colonne stockées dans la mémoire du disque. Chaque cellule du tableau a ses propres métadonnées telles que l'horodatage et d'autres informations.
![](https://cdn.css-code.org/2026697/hbase_architecture-_components-_data_model-_and_use_cases.png.webp)
Mécanisme de stockage dans HBase
En venant à HBase, voici les termes clés représentant le schéma de table
- Tableau : Collection de lignes présentes.
- Ligne : Collection de familles de colonnes.
- Famille de colonnes: collection de colonnes.
- Colonne : collection de paires clé-valeur.
- Espace de noms : regroupement logique des tables.
- Cellule : Un tuple {ligne, colonne, version} spécifie exactement une définition de cellule dans HBase.
Dans ce tutoriel, vous apprendrez,
- Mécanisme de stockage dans HBase
- Modèle de données HBase
- Architecture HBase et ses composants importants
- Explication des données de lecture et d'écriture HBase
- Cas d'utilisation HBase
- HBASE contre HDFS
Stockages orientés colonnes vs orientés lignes
Les stockages orientés colonnes et lignes diffèrent par leur mécanisme de stockage. Comme nous le savons tous, les modèles relationnels traditionnels stockent les données en termes de format basé sur les lignes, comme en termes de lignes de données. Les stockages orientés colonnes stockent les tables de données en termes de colonnes et de familles de colonnes.
Le tableau suivant donne quelques différences clés entre ces deux stockages
Base de données orientée colonnes | Base de données orientée ligne |
|
|
|
|
Modèle de données HBase
Le modèle de données HBase est un ensemble de composants comprenant des tableaux, des lignes, des familles de colonnes, des cellules, des colonnes et des versions. Les tables HBase contiennent des familles de colonnes et des lignes avec des éléments définis comme clés primaires. Une colonne de la table de modèle de données HBase représente les attributs des objets.
Le modèle de données HBase comprend les éléments suivants,
- Ensemble de tables
- Chaque table avec des familles de colonnes et des lignes
- Chaque table doit avoir un élément défini comme clé primaire.
- La clé de ligne agit comme une clé primaire dans HBase.
- Tout accès aux tables HBase utilise cette clé primaire
- Chaque colonne présente dans HBase désigne l'attribut correspondant à l'objet
Architecture HBase et ses composants importants
Vous trouverez ci-dessous une architecture détaillée de HBase avec des composants:
L'architecture HBase se compose principalement de quatre composants
- HMaster
- HRegionserver
- HRégions
- Gardien de zoo
- HDFS
HMaster:
HMaster dans HBase est l'implémentation d'un serveur maître dans l'architecture HBase. Il agit comme un agent de surveillance pour surveiller toutes les instances de Region Server présentes dans le cluster et agit comme une interface pour toutes les modifications de métadonnées. Dans un environnement de cluster distribué, Master s'exécute sur NameNode. Master exécute plusieurs threads d'arrière-plan.
Voici les rôles importants exécutés par HMaster dans HBase.
- Joue un rôle essentiel en termes de performances et de maintenance des nœuds dans le cluster.
- HMaster fournit des performances d'administration et distribue des services à différents serveurs de région.
- HMaster attribue des régions aux serveurs de région.
- HMaster possède des fonctionnalités telles que le contrôle de l'équilibrage de charge et du basculement pour gérer la charge sur les nœuds présents dans le cluster.
- Lorsqu'un client souhaite modifier un schéma et modifier des opérations de métadonnées, HMaster prend la responsabilité de ces opérations.
Certaines des méthodes exposées par HMaster Interface sont principalement des méthodes orientées métadonnées.
- Table (createTable, removeTable, activer, désactiver)
- ColumnFamily (ajouter une colonne, modifier une colonne)
- Région (déplacer, attribuer)
Le client communique de manière bidirectionnelle avec HMaster et ZooKeeper. Pour les opérations de lecture et d'écriture, il entre directement en contact avec les serveurs HRegion. HMaster attribue des régions aux serveurs de région et, à son tour, vérifie l'état de santé des serveurs de région.
Dans toute l'architecture, nous avons plusieurs serveurs de région. Hlog présent dans les serveurs de région qui vont stocker tous les fichiers journaux.
Serveurs de régions HBase:
Lorsque HBase Region Server reçoit des demandes d'écriture et de lecture du client, il attribue la demande à une région spécifique, où réside la famille de colonnes réelle. Cependant, le client peut contacter directement les serveurs HRegion, il n'est pas nécessaire d'obtenir l'autorisation obligatoire HMaster pour le client concernant la communication avec les serveurs HRegion. Le client a besoin de l'aide de HMaster lorsque des opérations liées aux métadonnées et aux modifications de schéma sont requises.
HRegionServer est l'implémentation du serveur de région. Il est chargé de servir et de gérer les régions ou les données présentes dans un cluster distribué. Les serveurs de région s'exécutent sur les nœuds de données présents dans le cluster Hadoop.
HMaster peut entrer en contact avec plusieurs serveurs HRegion et exécute les fonctions suivantes.
- Hébergement et gestion des régions
- Fractionnement automatique des régions
- Gestion des demandes de lecture et d'écriture
- Communiquer directement avec le client
Régions HBase:
Les HRegions sont les éléments de construction de base du cluster HBase qui se compose de la distribution de tables et sont constitués de familles de colonnes. Il contient plusieurs magasins, un pour chaque famille de colonnes. Il se compose principalement de deux composants, qui sont Memstore et Hfile.
ZooKeeper:
HBase Zookeeper est un serveur de surveillance centralisé qui gère les informations de configuration et fournit une synchronisation distribuée. La synchronisation distribuée consiste à accéder aux applications distribuées s'exécutant sur le cluster avec la responsabilité de fournir des services de coordination entre les nœuds. Si le client souhaite communiquer avec les régions, le client du serveur doit d'abord approcher ZooKeeper.
C'est un projet open source, et il fournit tellement de services importants.
Services fournis par ZooKeeper
- Conserve les informations de configuration
- Fournit une synchronisation distribuée
- Établissement de la communication client avec les serveurs de région
- Fournit des nœuds éphémères pour lesquels représentent différents serveurs de région
- Serveurs maîtres utilisabilité des nœuds éphémères pour découvrir les serveurs disponibles dans le cluster
- Pour suivre les pannes de serveur et les partitions réseau
Les nœuds maîtres et esclaves HBase (serveurs de région) se sont enregistrés auprès de ZooKeeper. Le client doit accéder à la configuration du quorum ZK (zookeeper) pour se connecter aux serveurs maître et régional.
Lors d'une défaillance des nœuds présents dans le cluster HBase, ZKquoram déclenchera des messages d'erreur et commencera à réparer les nœuds défaillants.
HDFS:
HDFS est un système de fichiers distribué Hadoop, comme son nom l'indique, il fournit un environnement distribué pour le stockage et c'est un système de fichiers conçu de manière à fonctionner sur du matériel de base. Il stocke chaque fichier dans plusieurs blocs et pour maintenir la tolérance aux pannes, les blocs sont répliqués sur un cluster Hadoop.
HDFS offre un degré élevé de tolérance aux pannes et fonctionne sur du matériel de base bon marché. En ajoutant des nœuds au cluster et en effectuant le traitement et le stockage à l'aide du matériel de base bon marché, cela donnera au client de meilleurs résultats par rapport à celui existant.
Ici, les données stockées dans chaque bloc se répliquent en 3 nœuds dans le cas où un nœud tombe en panne, il n'y aura pas de perte de données, il aura un mécanisme de récupération de sauvegarde approprié.
HDFS entre en contact avec les composants HBase et stocke une grande quantité de données de manière distribuée.
Explication des données de lecture et d'écriture HBase
Les opérations de lecture et d'écriture du client dans Hfile peuvent être illustrées dans le diagramme ci-dessous.
Étape 1) Le client veut écrire des données et à son tour communique d'abord avec le serveur de régions, puis avec les régions
Étape 2) Régions contactant Memstore pour le stockage associé à la famille de colonnes
Étape 3) Les premières données sont stockées dans Memstore, où les données sont triées et après cela, elles sont vidées dans HFile. La principale raison d'utiliser Memstore est de stocker des données dans un système de fichiers distribué basé sur la clé de ligne. Memstore sera placé dans la mémoire principale du serveur de région tandis que les fichiers HFiles sont écrits dans HDFS.
Étape 4) Le client veut lire les données des régions
Étape 5) À son tour, le client peut avoir un accès direct au magasin Mem, et il peut demander des données.
Étape 6) Le client s'approche de HFiles pour obtenir les données. Les données sont récupérées et récupérées par le client.
Memstore contient les modifications en mémoire du magasin. La hiérarchie des objets dans les régions HBase est illustrée de haut en bas dans le tableau ci-dessous.
Table | Table HBase présente dans le cluster HBase |
Région | HRegions pour les tableaux présentés |
Magasin | Il stocke par ColumnFamily pour chaque région de la table |
Memstore |
|
StoreFile | StoreFiles pour chaque magasin pour chaque région de la table |
Bloquer | Blocs présents dans StoreFiles |
Cas d'utilisation HBase
Voici des exemples de cas d'utilisation de HBase avec une explication détaillée de la solution qu'il apporte à divers problèmes techniques
Énoncé du problème | Solution |
---|---|
L'industrie des télécommunications fait face aux défis techniques suivants
| HBase est utilisé pour stocker des milliards de lignes d'enregistrements d'appels détaillés. Si 20 To de données sont ajoutés par mois à la base de données SGBDR existante, les performances se détérioreront. Pour gérer une grande quantité de données dans ce cas d'utilisation, HBase est la meilleure solution. HBase effectue des requêtes rapides et affiche les enregistrements. |
Le secteur bancaire génère quotidiennement des millions d'enregistrements. En plus de cela, le secteur bancaire a également besoin d'une solution d'analyse capable de détecter la fraude dans les transactions monétaires. | Pour stocker, traiter et mettre à jour de vastes volumes de données et effectuer des analyses, une solution idéale est - HBase intégré à plusieurs composants de l'écosystème Hadoop. |
Cela mis à part, HBase peut être utilisé
- Chaque fois qu'il est nécessaire d'écrire des applications lourdes.
- Effectuer des analyses de journaux en ligne et générer des rapports de conformité.
HBase contre HDFS
HBase fonctionne sur HDFS et Hadoop. Certaines différences clés entre HDFS et HBase concernent les opérations et le traitement des données.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Certaines applications industrielles informatiques typiques utilisent des opérations HBase avec Hadoop. Les applications incluent les données boursières, les opérations de données bancaires en ligne et le traitement de Hbase est la méthode de solution la mieux adaptée.
Résumé
Hbase est l'une des bases de données distribuées orientées colonnes NoSql disponible dans Apache Foundation. HBase offre plus de performances pour récupérer moins d'enregistrements que Hadoop ou Hive. Il est très facile de rechercher une valeur d'entrée donnée, car elle prend en charge l'indexation, les transactions et la mise à jour.
Nous pouvons effectuer des analyses en temps réel en ligne à l'aide d'Hbase intégrée à l'écosystème Hadoop. Il dispose d'un partitionnement automatique et configurable pour les ensembles de données ou les tables et fournit des API reposantes pour effectuer les tâches MapReduce.