Apache Tajo - Integração com HBase

Apache Tajo oferece suporte à integração com HBase. Isso nos permite acessar tabelas HBase no Tajo. HBase é um banco de dados orientado a colunas distribuído construído sobre o sistema de arquivos Hadoop. É uma parte do ecossistema Hadoop que fornece acesso aleatório de leitura / gravação em tempo real aos dados no Hadoop File System. As etapas a seguir são necessárias para configurar a integração do HBase.

Definir Variável de Ambiente

Adicione as seguintes alterações ao arquivo “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

Depois de incluir o caminho do HBase, Tajo configurará o arquivo de biblioteca do HBase para o caminho de classe.

Crie uma tabela externa

Crie uma tabela externa usando a seguinte sintaxe -

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

Para acessar as tabelas do HBase, você deve configurar o local do espaço de tabela.

Aqui,

  • Table- Definir o nome da tabela de origem hbase. Se você deseja criar uma tabela externa, a tabela deve existir no HBase.

  • Columns- A chave refere-se à chave de linha do HBase. O número de colunas de entrada deve ser igual ao número de colunas da tabela Tajo.

  • hbase.zookeeper.quorum - Defina o endereço do quorum do zookeeper.

  • hbase.zookeeper.property.clientPort - Definir a porta do cliente 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>/';

Aqui, o campo de caminho de localização define o id da porta do cliente zookeeper. Se você não definir a porta, Tajo fará referência à propriedade do arquivo hbase-site.xml.

Criar tabela no HBase

Você pode iniciar o shell interativo do HBase usando o comando “shell hbase” conforme mostrado na consulta a seguir.

Query

/bin/hbase shell

Result

A consulta acima irá gerar o seguinte resultado.

hbase(main):001:0>

Etapas para consultar o HBase

Para consultar o HBase, você deve concluir as seguintes etapas -

Step 1 - Canalize os seguintes comandos para o shell do HBase para criar uma tabela “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 - Agora, emita o seguinte comando no shell hbase para carregar os dados em uma tabela.

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

Step 3 - Agora, retorne ao shell Tajo e execute o seguinte comando para visualizar os metadados da tabela -

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 - Para buscar os resultados da tabela, use a seguinte consulta -

Query

default> select * from students

Result

A consulta acima irá buscar o seguinte resultado -

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