Phoenix是什么 ?
官方说:“We put the SQL back to NoSQL”
也就是说,Phoenix是对NoSQL提供SQL支持的工具。
当然对Hbase肯定也支持,它可以使用标准JDBC API代替HBase客户端API来创建表,插入数据和查询HBase数据。
特点
- 容易集成:如对Spark,Hive,Pig,Flume和Map Reduce等都有很好的集成。
- 操作简单:DML命令以及通过DDL命令创建和操作表和版本化增量更改。
- 完美支持Hbase二级索引创建。
作用
可以把hbase中的表更直观的展示出来,并且便于管理
比如:
安装与部署
官方网址: http://phoenix.apache.org/index.html
1.去官网下载对应自己Hbase 的版本
我的是1.3.1
2.然后解压
3.复制Phoenix目录下的server和client这俩个包通过SCP拷贝到其他各个节点的hbase/lib
scp phoenix-4.14.2-HBase-1.3-server.jar mini2:/bigdata/hbase/lib/
scp phoenix-4.14.2-HBase-1.3-client.jar mini2:/bigdata/hbase/lib/
其他机器类似…
本机有hbase也要复制
cp phoenix-4.14.2-HBase-1.3-server.jar /bigdata/hbase/lib/
4.设置环境变量:
给/etc/profile 加入
export PHOENIX_HOME=/opt/module/phoenix
export PHOENIX_CLASSPATH= $PHOENIX_HOME
export PATH= $PATH:$PHOENIX_HOME/bin
5.启动Zookeeper,Hadoop,Hbase,以及Phoenix
命令为:sqlline.py mini1,mini2,mini3:2181
效果如下:
基本命令操作
1.查看有多少表
!table
(我提前建有几个,刚安装好只有系统的前五张)
2.新建表
CREATE TABLE IF NOT EXISTS student (
firstname CHAR(2) NOT NULL,
lastname VARCHAR NOT NULL,
age BIGINT
CONSTRAINT my_pk PRIMARY KEY (firstname , lastname ));
在phoenix中,默认情况下,表名等会自动转换为大写,若要小写,加双引号,如"student"。
3.插入数据
upsert into student values('xx','john',17);
4.查询数据
select * from student ;
在Hbase中这条数据长这样,因为我指定了 PRIMARY KEY (firstname , lastname ));
两者共同构成了RowKey
5 删除操作
删除一条数据
delete from student where firstname='xx';
删除表
drop table student ;
6.退出界面
!quit