一、概述
1、HBase基础上架构的SQL中间件,使得可以通过SQL/JDBC来操作HBase
二、安装
1、上传/下载Phoenix安装包到linux服务器并解压,这台linux服务器最好是Hbase Master节点。所以,如果是Hbase集群,则不需要在全部的服务节点上来安装Phoenix,只需要在HMaster节点上安装即可
2、将Phoneix安装目录下的两个jar包,拷贝到Hbase安装目录下的lib目录
cp phoenix-4.8.1-HBase-0.98-server.jar /home/software/hbase/lib
cp phoenix-4.8.1-HBase-0.98-client.jar /home/software/hbase/lib
3、在 etc/profile文件中配置Hbase的目录路径
export HBASE_HOME=/home/software/hbase
export PATH=$PATH:$HBASE_HOME/bin
4、重新生效,source /etc/profile
5、启动Hadoop、ZK、HBase集群
6、进入Phoenix安装目录的bin目录
7、执行:./sqlline.py hadoop01,hadoop02,hadoop03:2181
如上图所以,证明Phoenix安装成功
此外,此时进入hbase,执行list查看,会发现多出如下的表:
8、如果需要kill掉Phoenix进程,则执行: pstree -p
查看 py进程,杀掉Sqlline的父进程
Phoenix使用
1、创建表:
create table tab1(id integer primary key,name varchar);
注:
①Phoenix建表必须有声明主键,否则报错
②Phoenix建表的表名,在hbase里的表名是大写的,此外,列名也是大写的。
③这条建表语句,并未声明表的列族,则默认就一个列族,且列族的名字为:0。
④在列族0中,除主键列外,其余的列都属于0列族里的列
2、查看所有表:
tables
3、插入数据:
upsert into tab1 values(1,'hello');
注:字符串类型用 ' '包起来,不要用“ ”,否则报错。
4、查询数据:
select * from tab1;
5、删除数据:
delete from tab1 where id=2;
6、删除表:
drop table tab1;
7、创建小写的表名:
create table "tab2" (id integer primary key,name varchar);
create table "tab2" ("id" integer primary key,"name" varchar);
select * from "tab2";
注:CRUD都以 "tab2"为表名来操作
8、自定义列族名
create table tab3 (id integer primary key,info.name varchar,info.age integer);
upsert into tab3 values(1,'tom',23);
然后在hbase里查看会发现:describe 'TAB3'
scan 'TAB3'