Phoenix集成HBase

一. Phoenix介绍

    可以把Phoenix理解为Hbase的查询引擎,phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,帮助开发者,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。

    phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。

    其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。

二.安装

1.phoenix安装包解压缩,更换目录

1
2
3
tar -zxvf apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz -C /opt/module

mv apache-phoenix-4.14.1-HBase-1.2-bin phoenix-4.14.1

2.修改环境变量

1
2
3
4
5
6
vi /etc/profile

#在最后两行加上如下phoenix配置
export PHOENIX_HOME=/opt/module/phoenix-4.14.1

export PATH=$PATH:$PHOENIX_HOME/bin

3.使环境变量配置生效

1
source /etc/profile

4.将主节点的phoenix包传到从节点

1
2
3
scp -r phoenix-4.14.1 root@bigdata13:/opt/module

scp -r phoenix-4.14.1 root@bigdata12:/opt/module

5.拷贝hbase-site.xml(注)三台都要

1
cp hbase-site.xml /opt/module/phoenix-4.14.1/bin/

将如下两个jar包,目录在/opt/module/phoenix-4.14.1下,拷贝到hbase的lib目录,目录在/opt/module/hbase-1.3.1/lib/
(注)三台都要

1
2
3
phoenix-4.10.0-HBase-1.2-server.jar

phoenix-core-4.10.0-HBase-1.2.jar

6.启动Phoenix

配置好之后重启下hbase。

1
bin/sqlline.py bigdata11:2181

三.基本命令

1.展示表

1
!table

2.创建表

1
2
3
4
5
create table test(id integer not null primary key,name varchar);

create table "Andy"(
id integer not null primary key,
name varchar);

3.删除表

1
drop table test;

4.插入数据

1
2
3
upsert into test values(1,'Andy');

upsert into users(name) values('toms');

5.查询数据

1
phoenix > select * from test;
1
hbase > scan 'test'

6.退出phoenix

1
!q

7.删除数据

1
delete from "Andy" where id=4;

8.sum函数的使用

1
select sum(id) from "Andy";

9.增加一列

1
alter table "Andy" add address varchar;

10.删除一列

1
alter table "Andy" drop column address;

其他语法详见:http://phoenix.apache.org/language/index.html

四.表映射

1.hbase中创建表

1
create 'teacher','info','contact'

2.插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
put 'teacher','1001','info:name','Jack'

put 'teacher','1001','info:age','28'

put 'teacher','1001','info:gender','male'

put 'teacher','1001','contact:address','shanghai'

put 'teacher','1001','contact:phone','13458646987'

put 'teacher','1002','info:name','Jim'

put 'teacher','1002','info:age','30'

put 'teacher','1002','info:gender','male'

put 'teacher','1002','contact:address','tianjian'

put 'teacher','1002','contact:phone','13512436987'

3.在Phoenix创建映射表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create view "teacher"(

"ROW" varchar primary key,

"contact"."address" varchar,

"contact"."phone" varchar,

"info"."age" varchar,

"info"."gender" varchar,

"info"."name" varchar

);

4.在Phoenix查找数据

1
select * from "teacher";
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2021 Movle
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信