Architecture HBase, composants, modèle de données et cas d'utilisation

Table des matières:

Anonim

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.

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
  • Lorsqu'il s'agit de processus et d'analyse, nous utilisons cette approche. Tels que le traitement analytique en ligne et ses applications.
  • Les processus transactionnels en ligne tels que les domaines bancaires et financiers utilisent cette approche.
  • La quantité de données pouvant être stockée dans ce modèle est très énorme en termes de pétaoctets
  • Il est conçu pour un petit nombre de lignes et de colonnes.

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:

Diagramme d'architecture HBase

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
  • Memstore pour chaque magasin pour chaque région pour la table
  • Il trie les données avant de les rincer dans HFiles
  • Les performances d'écriture et de lecture augmenteront en raison du tri
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
  • Stockage de milliards d'enregistrements de journaux CDR (enregistrement détaillé des appels) générés par le domaine des télécommunications
  • Fournir un accès en temps réel aux journaux CDR et aux informations de facturation des clients
  • Fournir une solution rentable par rapport aux systèmes de base de données traditionnels
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

  • Opérations à faible latence
  • Opérations à latence élevée
  • Lecture et écriture aléatoires
  • Ecrire une fois Lire plusieurs fois
  • Accessible via les commandes shell, l'API client en Java, REST, Avro ou Thrift
  • Accessible principalement via les travaux MR (Map Reduce)
  • Le stockage et le processus peuvent tous deux être effectués
  • C'est uniquement pour les zones de stockage

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.