Apache Tajo: integración con HBase

Apache Tajo admite la integración de HBase. Esto nos permite acceder a tablas HBase en Tajo. HBase es una base de datos distribuida orientada a columnas construida sobre el sistema de archivos Hadoop. Es una parte del ecosistema Hadoop que proporciona acceso aleatorio de lectura / escritura en tiempo real a los datos en el sistema de archivos Hadoop. Los siguientes pasos son necesarios para configurar la integración de HBase.

Establecer variable de entorno

Agregue los siguientes cambios al archivo "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

Una vez que haya incluido la ruta de HBase, Tajo establecerá el archivo de la biblioteca de HBase en la ruta de clase.

Crear una tabla externa

Cree una tabla externa usando la siguiente sintaxis:

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 acceder a las tablas de HBase, debe configurar la ubicación del espacio de tabla.

Aquí,

  • Table- Establecer el nombre de la tabla de origen de hbase. Si desea crear una tabla externa, la tabla debe existir en HBase.

  • Columns- La clave se refiere a la clave de fila de HBase. El número de entrada de columnas debe ser igual al número de columnas de la tabla Tajo.

  • hbase.zookeeper.quorum - Establecer la dirección del quórum del cuidador del zoológico.

  • hbase.zookeeper.property.clientPort - Establecer el puerto de cliente del guardián del zoológico.

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

Aquí, el campo Ruta de la ubicación establece la identificación del puerto del cliente del guardián del zoológico. Si no configura el puerto, Tajo hará referencia a la propiedad del archivo hbase-site.xml.

Crear tabla en HBase

Puede iniciar el shell interactivo de HBase utilizando el comando "hbase shell" como se muestra en la siguiente consulta.

Query

/bin/hbase shell

Result

La consulta anterior generará el siguiente resultado.

hbase(main):001:0>

Pasos para consultar HBase

Para consultar HBase, debe completar los siguientes pasos:

Step 1 - Canalice los siguientes comandos al shell de HBase para crear una tabla de "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 - Ahora, emita el siguiente comando en el shell hbase para cargar los datos en una tabla.

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

Step 3 - Ahora, regrese al shell Tajo y ejecute el siguiente comando para ver los metadatos de la tabla -

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 obtener los resultados de la tabla, use la siguiente consulta -

Query

default> select * from students

Result

La consulta anterior obtendrá el siguiente resultado:

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