Commandes HBase Shell avec exemples

Table des matières:

Anonim

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. En utilisant ces commandes, nous pouvons effectuer plusieurs opérations sur des tables de données qui peuvent offrir une meilleure efficacité de stockage des données et une interaction flexible par le client.

Nous pouvons interagir avec HBase de deux manières,

  • Mode shell interactif HBase et
  • Via l'API Java

Dans HBase, le mode shell interactif est utilisé pour interagir avec HBase pour les opérations de table, la gestion de table et la modélisation de données. En utilisant le modèle d'API Java, nous pouvons effectuer tous les types d'opérations de table 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 que l'API Java utilise le code java pour se connecter à HBase et que le mode shell utilise des commandes shell pour se connecter à HBase.

Overcap rapide de HBase avant de continuer-

  • HBase utilise des fichiers Hadoop comme système de stockage pour stocker les grandes quantités de données. Hbase se compose de serveurs maîtres et de serveurs de régions
  • Les données qui seront stockées dans HBase seront sous la forme de régions. De plus, ces régions seront divisées et stockées dans plusieurs serveurs de région
  • 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 du mode shell
  • Quelle que soit la commande que nous utilisons, elle se reflétera dans le modèle de données HBase
  • Nous utilisons les commandes du shell HBase dans les interpréteurs de scripts 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 distributions d'exploitation Linux et Unix
  • 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 didacticiel, nous avons créé une table dans laquelle «education» représente le nom de la table et correspond au nom de la colonne «guru99».
  • Dans certaines commandes "guru99", lui-même représente un nom de table.

Dans ce tutoriel, vous apprendrez,

  • Commandes générales
  • Commandes de gestion des tables
  • Commandes de manipulation de données
  • Commandes de réplication de cluster

Commandes générales

Dans Hbase, les commandes générales sont classées dans les commandes suivantes

  • Statut
  • Version
  • Table_help (scan, drop, get, put, disable, etc.)
  • Qui suis je

Pour entrer dans la commande shell HBase, tout d'abord, nous devons exécuter le code comme mentionné ci-dessous

hbase Shell

Une fois que nous entrons dans le shell HBase, nous pouvons exécuter toutes les commandes du shell mentionnées ci-dessous. Avec l'aide de ces commandes, nous pouvons effectuer tout type d'opérations de table 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 niveau de détail 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 vous pouvez passer 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>statushbase(main):002:0>status 'simple'hbase(main):003:0>status 'summary'hbase(main):004:0> status 'detailed'

Lorsque nous exécutons cet état de commande, il 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, il montre les informations telles que - 1 serveur en direct, 1 serveurs morts et 7,0000 de charge moyenne.

Version

Syntax: version

  • Cette commande affichera la version HBase actuellement utilisée en mode commande
  • Si vous exécutez la commande de version, elle donnera la sortie comme indiqué ci-dessus

Aide de table

Syntax:table_help

Cette commande guide

  • Quoi et comment utiliser les commandes référencées par table
  • Il fournira différentes utilisations de la commande shell HBase et ses syntaxes
  • Ici, dans la capture d'écran ci-dessus, il montre la syntaxe de la commande " create" et " get_table" 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 comme put, get et toutes les autres informations sur les commandes.

qui suis je

Syntaxe:

Syntax: Whoami

Cette commande "whoami" est utilisée pour renvoyer les informations utilisateur HBase actuelles à partir 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 sur des valeurs de temps 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 la HBase pour la ligne est spécifiée en UTC. Cet attribut utilisé avec les commandes de gestion de table.

Les différences importantes entre la gestion TTL et les TTL de la famille de colonnes sont indiquées ci-dessous

  • Les TTL de cellule sont exprimés en unités de millisecondes au lieu de secondes.
  • Les TTL d'une cellule ne peuvent pas prolonger la durée de vie effective d'une cellule au-delà d'un paramètre TTL 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 table avec des lignes et des familles de colonnes.

Voici les commandes de gestion des tables

  • Créer
  • Lister
  • Décris
  • Désactiver
  • Désactiver tous les
  • Permettre
  • Enable_all
  • Laissez tomber
  • Drop_all
  • Show_filters
  • Modifier
  • Alter_status

Examinons diverses utilisations des commandes dans HBase avec un exemple.

Créer

Syntax: create 
, 

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 passer des attributs de portée de table.

Afin de vérifier si la table 'education' est créée ou non, nous devons utiliser la commande "list" comme mentionné ci-dessous.

Lister

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, il 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écris

Syntax:describe 

hbase(main):010:0>describe 'education'

Cette commande décrit la table nommée.

  • Il 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 

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 aux tables

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 de suppression (sauf l'ajout de regex pour la correspondance)
  • Une fois la table désactivée, l'utilisateur peut supprimer la table de HBase
  • Avant de supprimer ou de supprimer une table, elle doit d'abord être désactivée

Permettre

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Cette commande commencera à activer la table nommée
  • Quelle que soit la table désactivée, pour récupérer son état précédent, nous utilisons cette commande
  • Si une table est désactivée dans la première instance et non supprimée ou supprimée, et si nous voulons réutiliser la table désactivée, nous devons l'activer à l'aide de cette commande.
  • Ici, dans la capture d'écran ci-dessus, nous activons la table «éducation».

show_filters

Syntax: show_filters

Cette commande affiche tous les filtres présents dans HBase comme ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.

laissez tomber

Syntax:drop 

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
  • Donc, la table à supprimer ou à supprimer d'abord la table doit être désactivée à l'aide de la commande disable
  • Ici, dans la capture d'écran ci-dessus, nous supprimons la table «éducation».
  • Avant d'exécuter 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 en utilisant 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 effaçons ici

  • Supposons qu'une table est désactivée, pour utiliser cette table, nous devons l'activer en utilisant la commande enable
  • La commande is_enabled vérifie que la table est activée ou non

modifier

Syntax: alter 
, NAME=>, VERSIONS=>5

Cette commande modifie le schéma de la famille de colonnes. Pour comprendre ce qu'il fait exactement, 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 des attributs de portée avec table
  1. Pour modifier ou ajouter la famille de colonnes «guru99_1» dans le tableau «education» à partir de la valeur actuelle pour conserver un maximum de 5 VERSIONS de cellule ,
  • "education" est le nom de table créé avec le nom de colonne "guru99" précédemment
  • 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
  1. Vous pouvez également utiliser la commande alter sur plusieurs familles de colonnes. Par exemple, nous définirons deux nouvelles colonnes dans notre table existante «éducation».
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • Nous pouvons modifier plusieurs schémas de colonne à 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 colonne que nous avons définis pour l'éducation de la table
  • Nous pouvons voir la manière d'utiliser cette commande dans la capture d'écran précédente
  1. Dans cette étape, nous verrons comment supprimer la famille de colonnes du tableau. Pour 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 de colonne guru99_1 que nous avons précédemment créé dans la première étape

  1. Comme indiqué dans les captures d'écran ci-dessous, il montre deux étapes: comment modifier l'attribut d'étendue de table et comment supprimer l'attribut d'étendue de table.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Étape 1) Vous pouvez modifier les attributs de portée de table tels que MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Ceux-ci peuvent être placés à la fin; par exemple, pour changer la taille maximale d'une région à 128 Mo ou toute autre valeur de mémoire que nous utilisons commander.

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

N OTE: MAX_FILESIZE Attribute Table étendue sera déterminée par certains attributs présents dans le HBase. MAX_FILESIZE fait également partie des attributs de portée de table.

Étape 2) Vous pouvez également supprimer un attribut de portée 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 un nom de table modifié avec des attributs de portée
  • La méthode table_att_unset est utilisée pour annuler la définition des attributs présents dans la table
  • La deuxième instance que nous désactivons l'attribut MAX_FILESIZE
  • Après l'exécution de la commande, il supprimera simplement l'attribut MAX_FILESIZE de la table "education".

alter_status

 Syntax: alter_status 'education'

  • Grâce à cette commande, vous pouvez obtenir le statut de la commande alter
  • Qui indique le nombre de régions de la table qui ont reçu le nom de table de passe de schéma mis à jour
  • Ici, dans la capture d'écran ci-dessus, il montre 1/1 régions mises à jour. Cela signifie qu'il a mis à jour une région. Après cela, s'il réussit, il affichera le commentaire terminé.

Commandes de manipulation de données

Ces commandes fonctionneront sur la table liée aux manipulations de données telles que la mise de données dans une table, la récupération de données d'une table et la suppression d'un schéma, etc.

Les commandes relèvent de celles-ci sont

  • Compter
  • Mettre
  • Obtenir
  • Effacer
  • Tout supprimer
  • Tronquer
  • Analyse

Examinons l'utilisation de ces commandes avec un exemple.

Compter

Syntax: count <'tablename'>, CACHE =>1000
  • La commande récupérera le nombre de lignes dans une table. 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 spécifié en option.
  • 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.

Exemple:

hbase> count 'guru99', CACHE=>1000

Cet exemple de décompte extrait 1000 lignes à la fois de la table "Guru99".

Nous pouvons créer un cache à une valeur inférieure si la table se compose de plusieurs lignes.

Mais par défaut, il récupère une ligne à la fois.

hbase>count 'guru99', INTERVAL => 100000hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Si supposons que la table "Guru99" ait une référence de table comme disons g.

Nous pouvons exécuter la commande count sur la référence de la table également comme ci-dessous

hbase>g.count INTERVAL=>100000hbase>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 cellule «valeur» dans une table, une ligne ou une colonne définie ou spécifiée.
  • Il coordonnera éventuellement l'horodatage.

Exemple:

  • Ici, nous plaçons des valeurs dans la table "guru99" sous la ligne r1 et la colonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Nous avons placé trois valeurs, 10, 15 et 30 dans le tableau "guru99" comme indiqué dans la capture d'écran ci-dessous

  • Supposons que la table "Guru99" ait une référence de table comme disons g. Nous pouvons également exécuter la commande sur la référence de table également comme

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • La sortie sera comme 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 insérées correctement

Extrait de code: pour la pratique

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}put 'guru99', 'r1', 'Edu:c1', 'value', 10put 'guru99', 'r1', 'Edu:c1', 'value', 15put 'guru99', 'r1', 'Edu:c1', 'value', 30

À partir de 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 des valeurs dans le nom de ligne r1 de la colonne «Edu» dans la table «guru99».

Obtenir

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Ici, les incluent TIMERANGE, TIMESTAMP, VERSIONS et FILTERS.

En utilisant cette commande, vous obtiendrez un contenu de ligne ou de cellule présent 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 un contenu de ligne ou de cellule particulier.

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 la table "guru99", les valeurs de la ligne r1 seront affichées à l'aide de cette commande

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Pour la table "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 la table "guru99", les valeurs de la ligne r1 et des familles de colonnes c1, c2, c3 seront affichées à l'aide de cette commande

Effacer

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Cette commande supprimera la valeur de la cellule dans la table définie 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, supprimer la cellule supprime les anciennes versions des valeurs.

Exemple:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • L'exécution ci-dessus supprimera la ligne r1 de la famille de colonnes c1 dans la table «guru99».
  • Supposons que la table "guru99" ait une référence de table comme disons g.
  • Nous pouvons également exécuter la commande sur la référence de table comme hbase> g.delete 'guru99', 'r1', 'c1' ".

supprimer tout

Syntax: deleteall <'tablename'>, <'rowname'>

  • Cette commande supprimera toutes les cellules d'une ligne donnée.
  • Nous pouvons définir éventuellement des noms de colonne et un horodatage selon la syntaxe.

Exemple:-

hbase>deleteall 'guru99', 'r1', 'c1'

Cela supprimera toutes les lignes et colonnes présentes dans le tableau. En option, nous pouvons mentionner les noms de colonnes dans cela.

Tronquer

Syntax: truncate 

Après la troncature d'une table hbase, le schéma présentera mais pas les enregistrements. Cette commande remplit 3 fonctions; ceux-ci sont énumérés ci-dessous

  • Désactive le tableau s'il présente déjà
  • Supprime la table si elle présente déjà
  • Recrée le tableau mentionné

Analyse

Syntax: scan <'tablename'>, {Optional parameters}

Cette commande analyse la table entière et affiche le contenu de la table.

  • Nous pouvons passer plusieurs spécifications optionnelles à 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.
  • Ce sont TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW et STOPROW.
scan 'guru99' 

La sortie comme ci-dessous montré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 la valeur de colonne unique c1
  • Il affiche les valeurs associées aux lignes

Exemples:-

Les différentes utilisations de la commande scan

Commander

Usage

scan '.META.', {COLUMNS => 'info: regioninfo'}

Il affiche toutes les informations de méta-données liées aux colonnes présentes dans les tableaux dans HBase

scan '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', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}

Il affiche le contenu de guru99 avec son nom de colonne c1 avec les valeurs présentes entre la valeur d'attribut de plage de temps mentionnée

scannez 'guru99', {RAW => true, VERSIONS => 10}

Dans cette commande RAW => true fournit des fonctionnalités avancées telles que l'affichage de toutes les valeurs de cellule présentes dans la table guru99

Exemple de code:

Créez d'abord une table et placez les valeurs dans la table

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}put 'guru99', 'r1', 'e:c1', 'value', 10put 'guru99', 'r1', 'e:c1', 'value', 12put 'guru99', 'r1', 'e:c1', 'value', 14delete '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 illustrée ci-dessous.

Capture d'écran de sortie:

La sortie montré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; il ne peut pas s'agir du même ordre que les valeurs que nous avons insérées dans le tableau

Commandes de réplication de cluster

  • Ces commandes fonctionnent sur le mode de configuration de cluster de HBase.
  • Pour ajouter et supprimer des homologues au cluster et pour démarrer et arrêter la réplication, ces commandes sont utilisées en général.

Commander

Fonctionnalité

add_peer

Ajouter des pairs au cluster à répliquer

hbase> add_peer '3', zk1, zk2, zk3: 2182: / hbase-prod

remove_peer

Arrête le flux de réplication défini.

Supprime toutes les informations de métadonnées sur l'homologue

hbase> remove_peer '1'

start_replication

Redémarre toutes les fonctionnalités de réplication

hbase> start_replication

stop_replication

Arrête toutes les fonctionnalités de réplication

hbase> stop_replication

Résumé :

Le shell HBase et les commandes générales donnent des informations complètes sur les différents types de commandes de manipulation de données, de gestion de table et de réplication de cluster. Nous pouvons effectuer diverses fonctions à l'aide de ces commandes sur les tables présentes dans HBase.