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