Apache Tajo - Integrazione con HBase

Apache Tajo supporta l'integrazione di HBase. Questo ci consente di accedere alle tabelle HBase in Tajo. HBase è un database distribuito orientato alle colonne costruito sul file system Hadoop. Fa parte dell'ecosistema Hadoop che fornisce accesso in lettura / scrittura casuale in tempo reale ai dati nel file system Hadoop. I seguenti passaggi sono necessari per configurare l'integrazione HBase.

Imposta variabile d'ambiente

Aggiungere le seguenti modifiche al file "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

Dopo aver incluso il percorso HBase, Tajo imposterà il file della libreria HBase sul classpath.

Crea una tabella esterna

Crea una tabella esterna utilizzando la seguente sintassi:

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>/'] ;

Per accedere alle tabelle HBase, è necessario configurare la posizione del tablespace.

Qui,

  • Table- Imposta il nome della tabella di origine hbase. Se vuoi creare una tabella esterna, la tabella deve esistere su HBase.

  • Columns- La chiave si riferisce alla chiave della riga HBase. Il numero di colonne immesse deve essere uguale al numero di colonne della tabella Tajo.

  • hbase.zookeeper.quorum - Imposta l'indirizzo del quorum del guardiano dello zoo.

  • hbase.zookeeper.property.clientPort - Imposta la porta del client guardiano dello zoo.

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>/';

Qui, il campo Percorso posizione imposta l'id della porta del client guardiano dello zoo. Se non si imposta la porta, Tajo farà riferimento alla proprietà del file hbase-site.xml.

Crea tabella in HBase

È possibile avviare la shell interattiva HBase utilizzando il comando "hbase shell" come mostrato nella seguente query.

Query

/bin/hbase shell

Result

La query precedente genererà il seguente risultato.

hbase(main):001:0>

Passaggi per interrogare HBase

Per interrogare HBase, è necessario completare i seguenti passaggi:

Step 1 - Invia i seguenti comandi alla shell HBase per creare una tabella "tutorial".

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 - Ora, esegui il seguente comando nella shell hbase per caricare i dati in una tabella.

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

Step 3 - Ora torna alla shell Tajo ed esegui il seguente comando per visualizzare i metadati della tabella -

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 - Per recuperare i risultati dalla tabella, utilizza la seguente query:

Query

default> select * from students

Result

La query sopra recupererà il seguente risultato:

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