开发手册 欢迎您!
软件开发者资料库

Apache Tajo - 与HBase集成

Apache Tajo与HBase的集成 - 从基本概念到高级概念,从简单而简单的步骤学习Apache Tajo,其中包括简介,体系结构,安装,配置设置,Shell命令,数据类型,操作符,SQL函数,数学函数,字符串函数,DateTime函数,JSON函数,数据库创建,表管理,SQL语句,聚合和窗口函数,SQL查询,存储插件,与HBase集成,与Hive集成,OpenStack Swift集成,JDBC接口,自定义函数。

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

设置环境变量

将以下更改添加到"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 [EXTERNAL] TABLE [IF NOT EXISTS]  [( , ... )] USING hbase WITH ('table' = '' , 'columns' = ':key,:, ...' , 'hbase.zookeeper.quorum' = 'keeper_address>' , 'hbase.zookeeper.property.clientPort' = 'keeper_client_port>') [LOCATION 'hbase:zk://:/'] ;

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

此处,

  • : 设置hbase原始表名.如果要创建外部表,该表必须存在于HBase上.

  • : 键指的是HBase行键.列条目数必须等于Tajo表列的数量.

  • hbase.zookeeper.quorum : 设置zookeeper法定人数地址.

  • hbase.zookeeper.property.clientPort : 设置zookeeper客户端端口.

查询

CREATE EXTERNAL TABLE students (rowkey text,id int,name text) USING hbase WITH ('table' = 'students', 'columns' = ':key,info:id,content:name') LOCATION 'hbase:zk://:/';

此处,位置路径字段设置zookeeper客户端端口ID.如果你没有设置端口,Tajo将引用hbase-site.xml文件的属性.

在HBase中创建表

你可以使用"hbase shell"命令启动HBase交互式shell,如以下查询所示.

查询

/bin/hbase shell

结果

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

 hbase(main):001:0>

查询HBase的步骤

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

第1步 : 将以下命令传递给HBase shell以创建"教程"表.

查询

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'

第2步 : 现在,在hbase shell中发出以下命令,将数据加载到表中.

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

第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

第4步 : 要从表格中获取结果,请使用以下查询 :

查询

default> select * from students

结果

以上查询将获取以下结果 :

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