Apache Tajo - Intégration avec HBase

Apache Tajo prend en charge l'intégration HBase. Cela nous permet d'accéder aux tables HBase dans Tajo. HBase est une base de données distribuée orientée colonnes construite sur le système de fichiers Hadoop. Il fait partie de l'écosystème Hadoop qui fournit un accès aléatoire en lecture / écriture en temps réel aux données du système de fichiers Hadoop. Les étapes suivantes sont nécessaires pour configurer l'intégration HBase.

Définir la variable d'environnement

Ajoutez les modifications suivantes au fichier «conf / tajo-env.sh».

$ vi conf/tajo-env.sh  
# HBase home directory. It is opitional but is required mandatorily to use HBase. 
# export HBASE_HOME = path/to/HBase

Après avoir inclus le chemin HBase, Tajo définira le fichier de bibliothèque HBase sur le chemin de classe.

Créer une table externe

Créez une table externe en utilisant la syntaxe suivante -

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <table_name> [(<column_name> <data_type>, ... )] 
USING hbase WITH ('table' = '<hbase_table_name>' 
, 'columns' = ':key,<column_family_name>:<qualifier_name>, ...' 
, 'hbase.zookeeper.quorum' = '<zookeeper_address>' 
, 'hbase.zookeeper.property.clientPort' = '<zookeeper_client_port>') 
[LOCATION 'hbase:zk://<hostname>:<port>/'] ;

Pour accéder aux tables HBase, vous devez configurer l'emplacement du tablespace.

Ici,

  • Table- Définissez le nom de la table d'origine hbase. Si vous souhaitez créer une table externe, la table doit exister sur HBase.

  • Columns- La clé fait référence à la clé de ligne HBase. Le nombre d'entrées de colonnes doit être égal au nombre de colonnes de la table Tajo.

  • hbase.zookeeper.quorum - Définissez l'adresse du quorum du gardien de zoo.

  • hbase.zookeeper.property.clientPort - Définissez le port du client zookeeper.

Query

CREATE EXTERNAL TABLE students (rowkey text,id int,name text) 
USING hbase WITH ('table' = 'students', 'columns' = ':key,info:id,content:name') 
LOCATION 'hbase:zk://<hostname>:<port>/';

Ici, le champ Chemin de l'emplacement définit l'ID de port du client zookeeper. Si vous ne définissez pas le port, Tajo fera référence à la propriété du fichier hbase-site.xml.

Créer une table dans HBase

Vous pouvez démarrer le shell interactif HBase à l'aide de la commande «hbase shell» comme indiqué dans la requête suivante.

Query

/bin/hbase shell

Result

La requête ci-dessus générera le résultat suivant.

hbase(main):001:0>

Étapes pour interroger HBase

Pour interroger HBase, vous devez suivre les étapes suivantes -

Step 1 - Dirigez les commandes suivantes vers le shell HBase pour créer un tableau «tutoriel».

Query

hbase(main):001:0> create ‘students’,{NAME => ’info’},{NAME => ’content’} 
put 'students', ‘row-01', 'content:name', 'Adam' 
put 'students', ‘row-01', 'info:id', '001' 
put 'students', ‘row-02', 'content:name', 'Amit' 
put 'students', ‘row-02', 'info:id', '002' 
put 'students', ‘row-03', 'content:name', 'Bob' 
put 'students', ‘row-03', 'info:id', ‘003'

Step 2 - Maintenant, exécutez la commande suivante dans le shell hbase pour charger les données dans une table.

main):001:0> cat ../hbase/hbase-students.txt | bin/hbase shell

Step 3 - Maintenant, retournez au shell Tajo et exécutez la commande suivante pour afficher les métadonnées de la table -

default> \d students;  

table name: default.students 
table path: 
store type: HBASE 
number of rows: unknown 
volume: 0 B 
Options: 
   'columns' = ':key,info:id,content:name' 
   'table' = 'students'  

schema: 
rowkey  TEXT 
id  INT4 
name TEXT

Step 4 - Pour récupérer les résultats de la table, utilisez la requête suivante -

Query

default> select * from students

Result

La requête ci-dessus récupérera le résultat suivant -

rowkey,  id,  name 
------------------------------- 
row-01,  001,  Adam 
row-02,  002,  Amit 
row-03   003,  Bob