CDH集群安装Phoenix服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kwame211/article/details/85243099

背景:
之前我们都是通过原生的 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子句的谓词到服务端过滤器处理 
* 执行聚合查询通过服务端钩子(称为协同处理器)
 
除此之外,还做了一些有趣的增强功能来更多地优化性能:

* 实现了二级索引来提升非主键字段查询的性能 
* 统计相关数据来提高并行化水平,并帮助选择最佳优化方案 
* 跳过扫描过滤器来优化IN,LIKE,OR查询 
* 优化主键的盐值来均匀分布写压力
 
二、安装步骤
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设置:


在该目录下将老的 manifest.json 改名备份,然后将三个文件移动进来,再将.sha1后缀的文件改为.sha后缀!

3.CM-UI界面安装该Parcel


检查后会发现CLABS_PHOENIX的parcel出现,然后分配、激活:


然后重启HBase服务更新配置即可!

三、测试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查看表信息:


发现一开始就存在4个系统表,在hue查看也如此:


创建测试表 test_phoenix:

create table test_phoenix (id integer not null primary key, cf.name varchar, age integer);
1
注意: 除了加感叹号的命令外,sql语句必须加分号结尾!

查看表结构:

!describe test_phoenix
1


可以看到上面建表语句所创建的表名和字段都是大写!要想改为小写,建表语句中就必须将其用双引号括起来!查询时也要加双引号!


 

猜你喜欢

转载自blog.csdn.net/kwame211/article/details/85243099