Commandes HBase Shell avec exemples
Après une installation réussie de HBase sur Hadoop, nous obtenons un shell interactif pour exécuter diverses commandes et effectuer plusieurs opérations. À l'aide de ces commandes, nous pouvons effectuer plusieurs opérations sur les tables de données, ce qui peut offrir une meilleure efficacité de stockage des données et une interaction flexible de la part du client.
Nous pouvons interagir avec HBase de deux manières,
- Mode shell interactif HBase et
- Avec Java API
Dans HBase, le mode shell interactif est utilisé pour interagir avec HBase pour les opérations sur les tables, la gestion des tables et la modélisation des données. En utilisant Java Modèle API, nous pouvons effectuer tout type d’opérations de tables et de données dans HBase. Nous pouvons interagir avec HBase en utilisant ces deux méthodes.
La seule différence entre ces deux est Java L'API utilise du code Java pour se connecter à HBase et le mode shell utilise des commandes shell pour se connecter à HBase.
Surcapsulage rapide de HBase avant de continuer-
- HBase utilise Hadoop fichiers comme système de stockage pour stocker de grandes quantités de données. Hbase se compose de serveurs maîtres et de serveurs régionaux
- Les données qui vont être stockées dans HBase seront sous forme de régions. De plus, ces régions seront divisées et stockées sur plusieurs serveurs régionaux.
- Ces commandes shell permettent au programmeur de définir des schémas de table et des opérations sur les données en utilisant une interaction complète en mode shell.
- Quelle que soit la commande que nous utilisons, cela se reflétera dans le modèle de données HBase
- Nous utilisons les commandes du shell HBase dans les interpréteurs de script du système d'exploitation comme le shell Bash
- Le shell Bash est l'interpréteur de commandes par défaut pour la plupart des Linux/Unix et le Unix distributions d'exploitation
- Les versions avancées de HBase fournissent des commandes shell, des références orientées objet de style jruby pour les tables.
- Les variables de référence de table peuvent être utilisées pour effectuer des opérations sur les données en mode shell HBase
Pour des exemples,
- Dans ce tutoriel, nous avons créé un tableau dans lequel « éducation » représente le nom de la table et correspond au nom de la colonne « guru99 ».
- Dans certaines commandes, « guru99 » représente lui-même un nom de table.
Commandes générales
Dans Hbase, les commandes générales sont classées dans les commandes suivantes
- Statut
- Version
- Table_help (analyser, supprimer, obtenir, mettre, désactiver, etc.)
- Qui suis je
Pour accéder à la commande shell HBase, nous devons tout d’abord exécuter le code comme mentionné ci-dessous
hbase Shell
Une fois que nous sommes entrés dans le shell HBase, nous pouvons exécuter toutes les commandes shell mentionnées ci-dessous. Avec l'aide de ces commandes, nous pouvons effectuer tous les types d'opérations sur les tables en mode shell HBase.
Examinons toutes ces commandes et leur utilisation une par une avec un exemple.
Statut
Syntax:status
Cette commande donnera des détails sur l'état du système comme le nombre de serveurs présents dans le cluster, le nombre de serveurs actifs et la valeur de charge moyenne. Vous pouvez également transmettre des paramètres particuliers en fonction du statut détaillé que vous souhaitez connaître sur le système. Les paramètres peuvent être « résumé », « simple » ou « détaillé », le paramètre par défaut fourni est « résumé ».
Ci-dessous, nous avons montré comment transmettre différents paramètres à la commande status.
Si nous observons la capture d'écran ci-dessous, nous aurons une meilleure idée.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Lorsque nous exécutons l'état de cette commande, elle donnera des informations sur le nombre de serveurs présents, les serveurs morts et la charge moyenne du serveur. Ici, dans la capture d'écran, elle affiche les informations telles que : 1 serveur live, 1 serveur mort et 7.0000 charge moyenne.
Version
Syntax: version
- Cette commande affichera la version HBase actuellement utilisée en mode commande
- Si vous exécutez la commande version, elle donnera le résultat comme indiqué ci-dessus
Tableau d'aide
Syntax:table_help
Cette commande guide
- Quoi et comment utiliser les commandes référencées par table
- Il fournira différentes utilisations des commandes shell HBase et ses syntaxes
- Ici, dans la capture d'écran ci-dessus, la syntaxe est affichée : "créer" et "get_table" commande avec son utilisation. Nous pouvons manipuler la table via ces commandes une fois la table créée dans HBase.
- Il donnera des commandes de manipulation de table telles que put, get et toutes les autres informations sur les commandes.
whoami
syntaxe:
Syntax: Whoami
Cette commande « whoami » est utilisée pour renvoyer les informations utilisateur HBase actuelles du cluster HBase.
Il fournira des informations telles que
- Groupes présents dans HBase
- Les informations utilisateur, par exemple dans ce cas « hduser » représentent le nom d'utilisateur comme indiqué dans la capture d'écran.
TTL (Time To Live) – Attribut
Dans HBase, les familles de colonnes peuvent être définies pour chronométrer les valeurs en secondes à l'aide de TTL. HBase supprimera automatiquement les lignes une fois le délai d'expiration atteint. Cet attribut s'applique à toutes les versions d'une ligne, même à la version actuelle.
L'heure TTL codée dans HBase pour la ligne est spécifiée en UTC. Cet attribut est utilisé avec les commandes de gestion de table.
Les différences importantes entre la gestion des TTL et les TTL de la famille de colonnes sont indiquées ci-dessous.
- Les durées de vie des cellules sont exprimées en millisecondes au lieu de secondes.
- Les durées de vie d'une cellule ne peuvent pas prolonger la durée de vie effective d'une cellule au-delà d'un paramètre de durée de vie au niveau de la famille de colonnes.
Commandes de gestion des tables
Ces commandes permettront aux programmeurs de créer des tables et des schémas de tables avec des familles de lignes et de colonnes.
Voici les commandes de gestion des tables
- Créez
- Liste
- Décrire
- Désactiver
- Désactiver tous les
- Activer
- Activer_tout
- Goutte
- Drop_all
- Afficher_filtres
- Modifier
- Modifier_statut
Examinons diverses utilisations des commandes dans HBase avec un exemple.
Créez
Syntax: create <tablename>, <columnfamilyname>
Exemple:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
L'exemple ci-dessus explique comment créer une table dans HBase avec le nom spécifié donné selon le dictionnaire ou les spécifications selon la famille de colonnes. En plus de cela, nous pouvons également y transmettre certains attributs de portée de table.
Afin de vérifier si la table 'éducation' est créée ou non, il faut utiliser la "liste" commande comme mentionné ci-dessous.
Liste
Syntax:list
- La commande « Liste » affichera toutes les tables présentes ou créées dans HBase
- La sortie affichée dans la capture d'écran ci-dessus montre actuellement les tables existantes dans HBase
- Ici, dans cette capture d'écran, cela montre qu'il y a au total 8 tables présentes dans HBase
- Nous pouvons filtrer les valeurs de sortie des tables en passant des paramètres d'expression régulière facultatifs
Décrire
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Cette commande décrit la table nommée.
- Cela donnera plus d'informations sur les familles de colonnes présentes dans le tableau mentionné.
- Dans notre cas, il donne la description de la table « éducation ».
- Il donnera des informations sur le nom de la table avec les familles de colonnes, les filtres associés, les versions et quelques détails supplémentaires.
désactiver
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
- Cette commande commencera à désactiver la table nommée
- Si la table doit être supprimée ou supprimée, elle doit d'abord être désactivée
Ici, dans la capture d'écran ci-dessus, nous désactivons l'éducation par table
désactiver tous les
Syntax: disable_all<"matching regex"
- Cette commande désactivera toutes les tables correspondant à l'expression régulière donnée.
- L'implémentation est la même que la commande delete (sauf l'ajout d'une expression régulière pour la correspondance)
- Une fois la table désactivée, l'utilisateur peut la supprimer de HBase
- Avant de supprimer ou de supprimer une table, elle doit d'abord être désactivée
Activer
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- Cette commande commencera à activer la table nommée
- Quelle que soit la table désactivée, pour revenir à son état précédent, nous utilisons cette commande
- Si une table est désactivée en premier lieu et n'est pas supprimée ou supprimée, et si nous voulons réutiliser la table désactivée, nous devons l'activer en utilisant cette commande.
- Ici, dans la capture d'écran ci-dessus, nous activons le tableau « éducation ».
show_filters
Syntax: show_filters
Cette commande affiche tous les filtres présents dans HBase comme ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.
déposer
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Nous devons observer ci-dessous les points pour la commande drop
- Pour supprimer la table présente dans HBase, il faut d'abord la désactiver
- Pour supprimer la table présente dans HBase, il faut d'abord la désactiver
- Ainsi, que ce soit la table à supprimer ou à supprimer en premier, la table doit être désactivée à l'aide de la commande Disable.
- Ici, dans la capture d'écran ci-dessus, nous supprimons le tableau « éducation ».
- Avant l'exécution de cette commande, il est nécessaire de désactiver la table « éducation ».
drop_all
Syntax: drop_all<"regex">
- Cette commande supprimera toutes les tables correspondant à l'expression régulière donnée
- Les tables doivent d'abord être désactivées avant d'exécuter cette commande à l'aide de Disable_all
- Les tables avec des expressions de correspondance regex vont être supprimées de HBase
est autorisé
Syntax: is_enabled 'education'
Cette commande vérifiera si la table nommée est activée ou non. Habituellement, il y a une petite confusion entre l'action de commande « enable » et « is_enabled », que nous clarifions ici
- Supposons qu'une table soit désactivée, pour utiliser cette table, nous devons l'activer à l'aide de la commande activate
- La commande is_enabled vérifiera si la table est activée ou non
modifier
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
Cette commande modifie le schéma de la famille de colonnes. Pour comprendre exactement ce qu'il fait, nous l'avons expliqué ici avec un exemple.
Exemples :
Dans ces exemples, nous allons effectuer des opérations de commande alter sur les tables et sur ses colonnes. Nous effectuerons des opérations comme
- Modification des noms de famille à une ou plusieurs colonnes
- Suppression des noms de famille de colonnes de la table
- Plusieurs autres opérations utilisant les attributs de portée avec table
- Pour modifier ou ajouter la famille de colonnes 'guru99_1' dans le tableau 'éducation' à partir de la valeur actuelle afin de conserver un maximum de 5 VERSIONS de cellule,
- « éducation » est le nom de la table créée précédemment avec le nom de colonne « guru99 »
- Ici, à l'aide d'une commande alter, nous essayons de changer le schéma de la famille de colonnes en guru99_1 à partir de guru99.
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- Vous pouvez également utiliser la commande alter sur plusieurs familles de colonnes. Par exemple, nous définirons deux nouvelles colonnes à notre tableau existant « éducation ».
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Nous pouvons modifier plusieurs schémas de colonnes à la fois en utilisant cette commande
- guru99_2 et guru99_3, comme indiqué dans la capture d'écran ci-dessus, sont les deux nouveaux noms de colonnes que nous avons définis pour la table education.
- Nous pouvons voir la manière d'utiliser cette commande dans la capture d'écran précédente
- Dans cette étape, nous verrons comment supprimer une famille de colonnes du tableau. Supprimer la famille de colonnes 'f1' dans la table 'éducation'.
Utilisez l'une de ces commandes ci-dessous,
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
- Dans cette commande, nous essayons de supprimer le nom d'espace colonne guru99_1 que nous avons créé précédemment lors de la première étape.
- Comme le montrent les captures d'écran ci-dessous, il montre deux étapes : comment modifier l'attribut de portée de la table et comment supprimer l'attribut de portée de la table.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Étape 1) Vous pouvez modifier les attributs de portée de la table tels que MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Ceux-ci peuvent être placés à la fin ; par exemple, pour modifier la taille maximale d'une région à 128 Mo ou toute autre valeur de mémoire, nous utilisons cette commande.
Usage:
- Nous pouvons utiliser MAX_FILESIZE avec la table comme attribut de portée comme ci-dessus
- Le nombre représenté dans MAX_FILESIZE est en terme de mémoire en octets
NREMARQUE : La portée de la table d'attributs MAX_FILESIZE sera déterminée par certains attributs présents dans HBase. MAX_FILESIZE relève également des attributs de portée de table.
Étape 2) Vous pouvez également supprimer un attribut de portée de table à l'aide de la méthode table_att_unset. Si vous voyez la commande
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- La capture d'écran ci-dessus montre le nom de la table modifié avec les attributs de portée
- La méthode table_att_unset est utilisée pour supprimer les attributs présents dans la table
- La deuxième fois, nous supprimons l'attribut MAX_FILESIZE
- Après l'exécution de la commande, l'attribut MAX_FILESIZE sera simplement supprimé de la table « éducation ».
alter_status
Syntax: alter_status 'education'
- Grâce à cette commande, vous pouvez obtenir l'état de la commande alter
- Ce qui indique le nombre de régions de la table qui ont reçu le nom de table de transmission de schéma mis à jour
- Ici, dans la capture d'écran ci-dessus, il montre les régions 1/1 mises à jour. Cela signifie qu'il a mis à jour une région. Après cela, si l'opération réussit, le commentaire effectué sera affiché.
Commandes de manipulation de données
Ces commandes fonctionneront sur la table liée aux manipulations de données telles que mettre des données dans une table, récupérer des données d'une table et supprimer un schéma, etc.
Les commandes relèvent de celles-ci sont
- que vous avez
- mettre
- Obtenez
- Supprimer
- tout effacer
- Tronquer
- Scanner
Examinons l'utilisation de ces commandes avec un exemple.
que vous avez
Syntax: count <'tablename'>, CACHE =>1000
- La commande récupérera le nombre de lignes dans un tableau. La valeur renvoyée par celui-ci est le nombre de lignes.
- Le nombre actuel est affiché toutes les 1000 lignes par défaut.
- L'intervalle de comptage peut être éventuellement spécifié.
- La taille du cache par défaut est de 10 lignes.
- La commande Count fonctionnera rapidement lorsqu’elle est configurée avec le bon cache.
Mise en situation :
hbase> count 'guru99', CACHE=>1000
Cet exemple de nombre récupère 1000 99 lignes à la fois dans la table « Guru ».
Nous pouvons réduire le cache à une valeur inférieure si la table comprend plus de lignes.
Mais par défaut, il récupérera une ligne à la fois.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Supposons que la table « Guru99 » ait une référence de table comme, par exemple, g.
Nous pouvons également exécuter la commande count sur la référence de table, comme ci-dessous
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
mettre
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Cette commande est utilisée pour les choses suivantes
- Il placera une « valeur » de cellule dans une table, une ligne ou une colonne définie ou spécifiée.
- Il coordonnera éventuellement l'horodatage.
Mise en situation :
- Ici, nous plaçons les valeurs dans le tableau « guru99 » sous la ligne r1 et la colonne c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Nous avons placé trois valeurs, 10,15, 30 et 99 dans le tableau « guru », comme indiqué dans la capture d'écran ci-dessous.
- Supposons que la table « Guru99 » ait une référence de table comme, par exemple, g. Nous pouvons également exécuter la commande sur la référence de table, comme
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Le résultat sera tel qu'indiqué dans la capture d'écran ci-dessus après avoir placé les valeurs dans « guru99 ».
Pour vérifier si la valeur d'entrée est correctement insérée dans le tableau, nous utilisons la commande « scan ». Dans la capture d'écran ci-dessous, nous pouvons voir que les valeurs sont correctement insérées
Extrait de code : pour la pratique
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443} put 'guru99', 'r1', 'Edu:c1', 'value', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put 'guru99', 'r1', 'Edu:c1', 'value', 30
D'après l'extrait de code, nous faisons ces choses
- Ici, nous créons une table nommée « guru99 » avec le nom de colonne « Edu ».
- En utilisant la commande « put », nous plaçons les valeurs dans le nom de ligne r1 de la colonne « Edu » dans le tableau « guru99 ».
Obtenez
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Ici inclure TIMERANGE, TIMESTAMP, VERSIONS et FILTERS.
En utilisant cette commande, vous obtiendrez le contenu d’une ligne ou d’une cellule présente dans le tableau. En plus de cela, vous pouvez également y ajouter des paramètres supplémentaires tels que TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. pour obtenir le contenu d'une ligne ou d'une cellule particulière.
Exemples:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Pour le tableau « guru99 », les valeurs de la ligne r1 et de la colonne c1 s'afficheront à l'aide de cette commande, comme indiqué dans la capture d'écran ci-dessus.
hbase> get 'guru99', 'r1'
Pour le tableau « guru99 », les valeurs de la ligne r1 seront affichées à l'aide de cette commande
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Pour le tableau « guru99 », les valeurs de la ligne 1 dans la plage de temps ts1 et ts2 seront affichées à l'aide de cette commande
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Pour le tableau « guru99 », les valeurs c1, c1, c2 des familles de lignes r3 et de colonnes seront affichées à l'aide de cette commande
Supprimer
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- Cette commande supprimera la valeur de la cellule dans le tableau défini de la ligne ou de la colonne.
- La suppression doit et doit correspondre exactement aux coordonnées des cellules supprimées.
- Lors de l'analyse, la suppression de cellule supprime les anciennes versions des valeurs.
Mise en situation :
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- L'exécution ci-dessus supprimera la ligne r1 de la famille de colonnes c1 dans le tableau « guru99 ».
- Supposons que la table « guru99 » ait une référence de table comme, par exemple, g.
- Nous pouvons également exécuter la commande sur la référence de table, comme base> g.supprimez 'guru99', 'r1', 'c1′”.
supprimer tout
Syntax: deleteall <'tablename'>, <'rowname'>
- Cette commande supprimera toutes les cellules d'une ligne donnée.
- Nous pouvons éventuellement définir des noms de colonnes et un horodatage pour la syntaxe.
Exemple:-
hbase>deleteall 'guru99', 'r1', 'c1'
Cela supprimera toutes les lignes et colonnes présentes dans le tableau. En option, nous pouvons y mentionner les noms de colonnes.
Tronquer
Syntax: truncate <tablename>
Après tronquer une table hbase, le schéma présentera mais pas les enregistrements. Cette commande remplit 3 fonctions ; ceux-ci sont répertoriés ci-dessous
- Désactive la table si elle est déjà présente
- Supprime la table si elle est déjà présente
- Recrée la table mentionnée
Scanner
Syntax: scan <'tablename'>, {Optional parameters}
Cette commande analyse la table entière et affiche le contenu de la table.
- Nous pouvons transmettre plusieurs spécifications facultatives à cette commande scan pour obtenir plus d'informations sur les tables présentes dans le système.
- Les spécifications du scanner peuvent inclure un ou plusieurs des attributs suivants.
- Il s'agit de TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW et STOPROW.
scan 'guru99'
La sortie comme ci-dessous affichée dans la capture d'écran
Dans la capture d'écran ci-dessus
- Il montre la table « guru99 » avec le nom de la colonne et les valeurs
- Il se compose de trois valeurs de ligne r1, r2, r3 pour une valeur de colonne unique c1
- Il affiche les valeurs associées aux lignes
Exemples:-
Les différentes utilisations de la commande scan
Command | Utilisation |
---|---|
scannez '.META.', {COLONNES => 'info:regioninfo'} | Il affiche toutes les informations de métadonnées liées aux colonnes présentes dans les tables de HBase |
scannez 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | Il affiche le contenu de la table guru99 avec leurs familles de colonnes c1 et c2 limitant les valeurs à 10 |
scannez 'guru99', {COLONNES => 'c1', TIMERANGE => [1303668804, 1303668904]} | Il affiche le contenu de guru99 avec son nom de colonne c1 avec les valeurs présentes entre la valeur de l'attribut de plage de temps mentionnée. |
scannez 'guru99', {RAW => vrai, VERSIONS =>10} | Dans cette commande, RAW=> true fournit des fonctionnalités avancées telles que l'affichage de toutes les valeurs de cellules présentes dans le tableau guru99 |
Exemple de code:
Créez d’abord un tableau et placez les valeurs dans le tableau
create 'guru99', {NAME=>'e', VERSIONS=>2147483647} put 'guru99', 'r1', 'e:c1', 'value', 10 put 'guru99', 'r1', 'e:c1', 'value', 12 put 'guru99', 'r1', 'e:c1', 'value', 14 delete 'guru99', 'r1', 'e:c1', 11
Capture d'écran d'entrée :
Si nous exécutons la commande scan
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Il affichera la sortie indiquée ci-dessous.
Capture d'écran de sortie :
La sortie affichée dans la capture d'écran ci-dessus donne les informations suivantes
- Analyse de la table guru99 avec les attributs RAW=>true, VERSIONS=>1000
- Affichage des lignes avec des familles de colonnes et des valeurs
- Dans la troisième ligne, les valeurs affichées montrent la valeur supprimée présente dans la colonne
- La sortie affichée est aléatoire ; cela ne peut pas être le même ordre que les valeurs que nous avons insérées dans le tableau
Cluster Commandes de réplication
- Ces commandes fonctionnent en mode de configuration de cluster de HBase.
- Pour ajouter et supprimer des pairs au cluster et pour démarrer et arrêter la réplication, ces commandes sont utilisées en général.
Command | Fonctionnalités |
---|---|
add_peer | Ajouter des pairs au cluster à répliquer
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
supprimer_peer | Arrête le flux de réplication défini.
Supprime toutes les informations de métadonnées sur le homologue hbase> remove_peer '1' |
start_replication | Redémarre toutes les fonctionnalités de réplication
hbase> start_replication |
stop_réplication | Arrête toutes les fonctionnalités de réplication
hbase>stop_réplication |
Résumé
Le shell HBase et les commandes générales fournissent des informations complètes sur les différents types de commandes de manipulation de données, de gestion de tables et de réplication de cluster. Nous pouvons exécuter diverses fonctions en utilisant ces commandes sur les tables présentes dans HBase.