背景:
之前我们都是通过原生的 hbase-java api根据业务需求来查询hbase,每有一个查询需求都需要定制化开发相关的查询代码,较为麻烦,而且在性能优化等方面优化也是需要着重注意;
目前业界使用 Phoenix操作HBase比较普遍,该方案无论是开发效率还是性能提升都能得到不错的保证,在这篇博客中记录下CDH集群如何安装Phoenix服务~
集群信息:
版本:CDH 5.13.0
四台机器:cdh1 - cdh4
一、基本介绍
Phoenix是一个开源的HBASE SQL层。它不仅可以使用标准的JDBC API替代HBASE client API创建表,插入和查询HBASE,也支持二级索引、事务以及多种SQL层优化。 Phoenix通过以下方式实现了比你自己手写的方式相同或者可能是更好的性能(更不用说可以少写了很多代码):* 编译你的SQL查询为原生HBase的scan语句
* 检测scan语句最佳的开始和结束的key
* 精心编排你的scan语句让他们并行执行
* 让计算去接近数据通过
* 推送你的WHERE子句的谓词到服务端过滤器处理
* 执行聚合查询通过服务端钩子(称为协同处理器)
- 1
- 2
- 3
- 4
- 5
- 6
* 实现了二级索引来提升非主键字段查询的性能
* 统计相关数据来提高并行化水平,并帮助选择最佳优化方案
* 跳过扫描过滤器来优化IN,LIKE,OR查询
* 优化主键的盐值来均匀分布写压力
- 1
- 2
- 3
- 4
二、安装步骤
1.下载
下载地址:http://archive.cloudera.com/cloudera-labs/phoenix/parcels/latest/ 我们根据自己操作系统选择版本,我的是CentOS 7.5,故选择el7
下载这三个文件:
*.parcel
、*.parcel.sha1
、manifest.json

2.文件上传服务器指定目录
在集群master节点上找到cdh的主目录,将三个文件放置在parcel包的目录,我的目录是/home/cdh/cloudera/parcel-repo
不知道自己parcel目录的可以去cm界面查看:
查看parcel设置:

.sha1
后缀的文件改为.sha
后缀!

3.CM-UI界面安装该Parcel


CLABS_PHOENIX
的parcel出现,然后分配、激活:


三、测试Phoenix功能
在服务器shell命令行输入:tab
phoenix前缀可以看到如下几个py后缀的命令:(说明phoenix服务已安装且将命令添加到环境变量)
phoenix-sql
命令行:
phoenix-sqlline.py cdh1:2181
- 1
cdh1:2181
是zookeeper主机名端口,如果上面执行报错,可以试试这个:
phoenix-sqlline.py cdh1:2181:/hbase
- 1

!table
查看表信息:

create table test_phoenix (id integer not null primary key, cf.name varchar, age integer);
- 1
!describe test_phoenix
- 1


OK!本次 CDH - Phoenix安装到此结束!