- Apache Tajo - Custom Functions
- Apache Tajo - JDBC Interface
- OpenStack Swift Integration
- Apache Tajo - Integration with Hive
- Integration with HBase
- Apache Tajo - Storage Plugins
- Apache Tajo - SQL Queries
- Aggregate & Window Functions
- Apache Tajo - SQL Statements
- Apache Tajo - Table Management
- Apache Tajo - Database Creation
- Apache Tajo - JSON Functions
- Apache Tajo - DateTime Functions
- Apache Tajo - String Functions
- Apache Tajo - Math Functions
- Apache Tajo - SQL Functions
- Apache Tajo - Operators
- Apache Tajo - Data Types
- Apache Tajo - Shell Commands
- Apache Tajo - Configuration Settings
- Apache Tajo - Installation
- Apache Tajo - Architecture
- Apache Tajo - Introduction
- Apache Tajo - Home
Apache Tajo Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Apache Tajo - Integration with HBase
Apache Tajo supports HBase integration. This enables us to access HBase tables in Tajo. HBase is a distributed column-oriented database built on top of the Hadoop file system. It is a part of the Hadoop ecosystem that provides random real-time read/write access to data in the Hadoop File System. The following steps are required to configure HBase integration.
Set Environment Variable
Add the following changes to “conf/tajo-env.sh” file.
$ vi conf/tajo-env.sh # HBase home directory. It is opitional but is required mandatorily to use HBase. # export HBASE_HOME = path/to/HBase
After you have included the HBase path, Tajo will set the HBase pbrary file to the classpath.
Create an External Table
Create an external table using the following syntax −
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <table_name> [(<column_name> <data_type>, ... )] USING hbase WITH ( table = <hbase_table_name> , columns = :key,<column_family_name>:<quapfier_name>, ... , hbase.zookeeper.quorum = <zookeeper_address> , hbase.zookeeper.property.cpentPort = <zookeeper_cpent_port> ) [LOCATION hbase:zk://<hostname>:<port>/ ] ;
To access HBase tables, you must configure the tablespace location.
Here,
Table − Set hbase origin table name. If you want to create an external table, the table must exists on HBase.
Columns − Key refers to the HBase row key. The number of columns entry need to be equal to the number of Tajo table columns.
hbase.zookeeper.quorum − Set zookeeper quorum address.
hbase.zookeeper.property.cpentPort − Set zookeeper cpent port.
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>/ ;
Here, the Location path field sets the zookeeper cpent port id. If you don’t set the port, Tajo will refer the property of hbase-site.xml file.
Create Table in HBase
You can start the HBase interactive shell using the “hbase shell” command as shown in the following query.
Query
/bin/hbase shell
Result
The above query will generate the following result.
hbase(main):001:0>
Steps to Query HBase
To query HBase, you should complete the following steps −
Step 1 − Pipe the following commands to the HBase shell to create a “tutorial” table.
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 − Now, issue the following command in hbase shell to load the data into a table.
main):001:0> cat ../hbase/hbase-students.txt | bin/hbase shell
Step 3 − Now, return to the Tajo shell and execute the following command to view the metadata of the 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 − To fetch the results from the table, use the following query −
Query
default> select * from students
Result
The above query will fetch the following result −
rowkey, id, name ------------------------------- row-01, 001, Adam row-02, 002, Amit row-03 003, BobAdvertisements