安装
下载
phoenix-hbase-2.4-5.1.2-bin.tar
https://dlcdn.apache.org/phoenix/phoenix-5.1.2/phoenix-hbase-2.4-5.1.2-bin.tar.gz
解压
tar -zxvf phoenix-hbase-2.4-5.1.2-bin.tar.gz -C /opt/module/
修改目录名称
cd /opt/module/
mv phoenix-hbase-2.4-5.1.2-bin/ phoenix
复制 server 包并拷贝到各个节点的 hbase/lib
cp /opt/module/phoenix/phoenix-server-hbase-2.4-5.1.2.jar /opt/module/hbase/lib/
分发到其他服务器
/home/xsync /opt/module/hbase/lib/ /opt/module/phoenix/phoenix-server-hbase-2.4-5.1.2.jar
修改环境变量
vim /etc/profile.d/my_env.sh
配置环境变量 #
#phoenix
export PHOENIX_HOME=/opt/module/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
重新生效
source /etc/profile.d/my_env.sh
重启 HBase
stop-hbase.sh
start-hbase.sh
连接 Phoenix
/opt/module/phoenix/bin/sqlline.py hadoop100,hadoop101,hadoop102:2181
Phoenix Shell 命令
Phoenix语法
https://phoenix.apache.org/language/index.html
显示所有表
!table 或 !tables
创建表
直接指定单个列作为 RowKey
CREATE TABLE IF NOT EXISTS student( id VARCHAR primary key, name VARCHAR, age BIGINT, addr VARCHAR);
在 phoenix 中,表名等会自动转换为大写,若要小写,使用双引号,如"us_population"。
指定多个列的联合作为 RowKey
CREATE TABLE IF NOT EXISTS student1 ( id VARCHAR NOT NULL, name VARCHAR NOT NULL, age BIGINT, addr VARCHAR CONSTRAINT my_pk PRIMARY KEY (id, name));
注:Phoenix 中建表,会在 HBase 中创建一张对应的表。为了减少数据对磁盘空间的占用,Phoenix 默认会对 HBase 中的列名做编码处理。具体规则可参考官网链接:https://phoenix.apache.org/columnencoding.html,若不想对列名编码,可在建表语句末尾加上 COLUMN_ENCODED_BYTES = 0;
查询记录
select * from student;
select * from student where id='1001';
插入数据
upsert into student values('1001','zhangsan', 10, 'beijing');
删除记录
delete from student where id='1001';
删除表
drop table student;
退出命令行
!quit