HBase(10):Hbase与phoenix集成

一、HBase与phoenix原因

1.phoenix:可以类似于mysql,作为客户端JDBC的驱动对hbase中的数据进行低延迟的访问

2.内部将sql查询语句编译成hbase内部的一系列复杂scan操做

二、准备

1.phoenix

(1)下载:官网http://phoenix.apache.org/download.html

(2)自己编译(推荐,更加保证兼容性)

参考之前博客:https://blog.csdn.net/u010886217/article/details/84701152

2.hbase采用cdh5.7.0版本

三、安装和配置步骤

1.解压

tar -zxvf phoenix-4.9.0-cdh5.7.0.tar.gz -C /opt/modules/

2.phoenix与hbase集成

(1)将phoenix-4.9.0-cdh5.7.0-client.jar 拷贝到hbase的lib目录下

cp /opt/modules/phoenix-4.9.0-cdh5.7.0/phoenix-4.9.0-cdh5.7.0-client.jar /opt/modules/hbase-1.2.0-cdh5.7.0/lib/

(2)将lib目录下的phoenix-core-4.9.0-cdh5.7.0.jar拷贝到hbase的lib目录下

cp /opt/modules/phoenix-4.9.0-cdh5.7.0/lib/phoenix-core-4.9.0-cdh5.7.0.jar /opt/modules/hbase-1.2.0-cdh5.7.0/lib/

(3)将hbase/conf目录下hbase-site文件放到phoenix的bin目录下

cp /opt/modules/hbase-1.2.0-cdh5.7.0/conf/hbase-site.xml /opt/modules/phoenix-4.9.0-cdh5.7.0/bin/

(4)重启zk和hbase服务

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

四、测试

1.开启phoenix,指定zk的地址作为hbase的访问入口

bin/sqlline.py hadoop:2181

2.基本命令

(1)查看表

0: jdbc:phoenix:hadoop:2181> !tables
		+------------+--------------+-------------+---------------+----------+------------+---------+
		| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_RE |
		+------------+--------------+-------------+---------------+----------+------------+---------+
		|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |         |
		|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |         |
		|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |         |
		|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |         |
		+------------+--------------+-------------+---------------+----------+------------+---------+

(2)在phoenix中创建表

create table user(
id varchar primary key,
name varchar,
password varchar
);

(3)创建表,指定列簇与列

create table user(
id varchar primary key,
info.name varchar,
info.password varchar
);

(4)添加数据:upsert

upsert into user(id,name,password) values('001','admin','admin');
upsert into user(id,name,password) values('002','admin','admin');

hbase中就会有相应的数据和表

hbase(main):002:0> scan 'USER'
ROW                      COLUMN+CELL                                                         
 001                     column=INFO:NAME, timestamp=1543661442858, value=admin              
 001                     column=INFO:PASSWORD, timestamp=1543661442858, value=admin          
 001                     column=INFO:_0, timestamp=1543661442858, value=x                    
 002                     column=INFO:NAME, timestamp=1543661447932, value=admin              
 002                     column=INFO:PASSWORD, timestamp=1543661447932, value=admin          
 002                     column=INFO:_0, timestamp=1543661447932, value=x                    
2 row(s) in 0.1140 seconds

 (5)查询数据

select * from user;

(6)删除数据

delete from user where id='002';

(7)hbase与phoenix表与表之间进行关联

将hbase中的表映射到phoenix,hbase中有stu_info

create table "stu_info"(
rowkey varchar primary key,
"info"."name" varchar,
"info"."age" varchar,
"info"."sex" varchar,
"degree"."xueli" varchar,
"work"."job" varchar 
);    

phoenix的结果

0: jdbc:phoenix:hadoop:2181> select * from "stu_info";
	+---------+-----------+------+---------+-----------+----------+
	| ROWKEY  |   name    | age  |   sex   |   xueli   |   job    |
	+---------+-----------+------+---------+-----------+----------+
	| 10001   | tom       | 18   | male    | benke     | bigdata  |
	| 10002   | jack      | 22   | female  | gaozhong  |          |
	| 10003   | leo       | 22   |         |           |          |
	| 10004   | peter     | 18   |         |           |          |
	| 10005   | jim       | 19   |         |           |          |
	| 10006   | zhangsan  | 20   |         |           |          |
	| 10011   | ngsan     | 12   | male    |           |          |
	| 10012   | lisi      | 13   | female  |           |          |
	| 10013   | wangwu    | 14   | male    |           |          |
	| 10014   | zhaoliu   | 15   | female  |           |          |
	| 10015   | xieqi     | 16   | female  |           |          |
	+---------+-----------+------+---------+-----------+----------+

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/84701937