Apache Tajo 简明教程

Apache Tajo - Integration with HBase

Apache Tajo 支持 HBase 集成。这使我们能够在 Tajo 中访问 HBase 表。HBase 是一个分布式面向列的数据库,建立在 Hadoop 文件系统之上。它是 Hadoop 生态系统的一部分,提供对 Hadoop 文件系统中数据的随机实时读/写访问。需要执行以下步骤来配置 HBase 集成。

Set Environment Variable

将以下更改添加到“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

在您包含 HBase 路径后,Tajo 将 HBase 库文件设置为类路径。

Create an External Table

使用以下语法创建一个外部表 −

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

要访问 HBase 表,您必须配置表空间位置。

在此,

  1. Table − 设置 hbase 原始表名。如果您想创建一个外部表,该表必须存在于 HBase 上。

  2. Columns − 键指 HBase 行键。列条目的数量需要等于 Tajo 表列的数量。

  3. hbase.zookeeper.quorum − 设置 zookeeper 仲裁地址。

  4. hbase.zookeeper.property.clientPort − 设置 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>/';

这里,位置路径字段设置 zookeeper 客户机端口 ID。如果您不设置端口,Tajo 将引用 hbase-site.xml 文件的属性。

Create Table in HBase

您可以使用 “hbase shell” 命令启动 HBase 交互 shell,如下面的查询所示。

Query

/bin/hbase shell

Result

上述查询将生成以下结果。

hbase(main):001:0>

Steps to Query HBase

要查询 HBase,您应该完成以下步骤 −

Step 1 − 将以下命令管道化到 HBase shell 中以创建一个 “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 − 现在,在 hbase shell 中发出以下命令以将数据加载到表中。

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

Step 3 − 现在,返回 Tajo shell 并执行以下命令以查看表的元数据 −

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 − 要从表中获取结果,请使用以下查询 −

Query

default> select * from students

Result

上述查询将获取以下结果 −

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