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