phoenix到hbase的应用
一、phoenix的简介
hbase的java api或者其语法很难用,可以认为phoenix是一个中间件,提供了访问hbase的另外的语法。
二、配置phoenix和hbase
1.下载
phoenix的官网是:http://phoenix.apache.org/,用户可以到该网址找到对应hbase版本的phoenix来下载。
这里使用的是phoenix-4.6.0-HBase-0.98-bin.tar.gz这个包
2.解压并拷贝文件
tar -zxvf phoenix-4.6.0-HBase-0.98-bin.tar.gz -C /usr/local/
解压完成后可以看到如下的目录:
其中雷系tests.jar和sources.jar是没有用的,可以删除掉
rm -f *-tests.jar
rm -f *-sources.jar
然后拷贝这些jar文件到hbase的安装目录下
cp *.jar ../hbase-0.98.8-hadoop2/lib/
重启region server即可
./hbase-daemon.sh stop regionserver
./hbase-daemon.sh start regionserver
3.执行sqlline.py
进入到phoenix的bin目录,执行sqlline.py 命令的参数是zk的地址
三、使用phoenix
3.1在phoenix中创建表
create table student(id varchar(64) not null primary key,name varchar(64),age integer);
可以看到在hbase中也出现了一张表
["STUDENT", "SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS"]
在phoenix中创建的表,表名会自动变成大写。并且列族是0
3.2使用phoenix插入或者更新数据
upsert into STUDENT (id,name,age) values ('1','zhangsan',25);
upsert into STUDENT (id,name,age) values ('2','lisi',20);
3.3使用phoenix查询数据
select * from STUDENT where age > 20;
四、关于phoenix的小问题
1.如何创建小写的表名?
create table "student"("id" varchar(64) not null primary key,name varchar(64),age interger);
2.如何创建自定义列族的表?
create table "student2"("id" varchar(64) not null primary key ,"cf"."name" varchar(64),"cf"."age" integer);