Phoenix 的安装使用

Apache Phoenix是一个开源的SQL引擎,用于操作HBase数据表。本文详细介绍了Phoenix的安装、性能特点以及使用方法,包括批处理、命令行、GUI和JDBC调用方式。通过Phoenix,可以使用SQL查询HBase,实现高效的数据管理和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Phoenix 的安装使用

phoenix 图解详细安装地址:https://www.cnblogs.com/zlslch/p/7096353.html
1. 什么是Phoenix?
 phoenix,中文译为“凤凰”,很美的名字。Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。Phoenix是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。Phoenix的团队用了一句话概括Phoenix:“We put the SQL back in NoSQL” 意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以用SQL语句来查询Hbase,你可能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询文本文件,Phoenix的特点就是,它只能查Hbase,别的类型都不支持!但是也因为这种专一的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!
2. Phoenix性能
 Phoenix是构建在HBase之上的SQL引擎。你也许会存在“Phoenix是否会降低HBase的效率?”或者“Phoenix效率是否很低?”这样的疑虑,事实上并不会,Phoenix通过以下方式实现了比你自己手写的方式相同或者可能是更好的性能(更不用说可以少写了很多代码):
 1. 编译你的SQL查询为原生HBase的scan语句
检测scan语句最佳的开始和结束的key。
精心编排你的scan语句让他们并行执行
推送你的WHERE子句的谓词到服务端过滤器处理。
执行聚合查询通过服务端钩子(称为协同处理器)。
2.除此之外,Phoenix还做了一些有趣的增强功能来更多地优化性能:
实现了二级索引来提升非主键字段查询的性能
统计相关数据来提高并行化水平,并帮助选择最佳优化方案。
跳过扫描过滤器来优化IN,LIKE,OR查询
优化主键的来均匀分布写压力。

  1. Phoenix的安装部署
    3.1、准备工作
    提前安装好ZK集群、hadoop集群、Hbase集群3.2、安装包
    从对应的地址下载:http://mirrors.cnnic.cn/apache/phoenix/
    这里我们使用的是:
    phoenix-4.8.2-HBase-1.2-bin.tar.gz
    下载地址:http://archive.apache.org/dist/phoenix/

在这里插入图片描述
3.3、上传、解压
将对应的安装包上传到对应的Hbase集群其中一个服务器的一个目录下
解压:tar -zxvf phoenix-4.8.2-HBase-1.2-bin.tar.gz -C /var/local
重命名:mv phoenix-4.8.2-HBase-1.2-bin phoenix
3.4、配置(成功:将集群的每台机器上 下面俩个jar 拷贝,然后主机那台机器上做(2)操作
(1) 将phoenix目录下的phoenix-4.8.2-HBase-1.2-server.jar、
phoenix-core-4.8.2-HBase-1.2.jar拷贝到各个 hbase的lib目录下。

(2)将hbase的配置文件hbase-site.xml、 hadoop/etc/hadoop下的core-site.xml 、hdfs-site.xml放到phoenix/bin/下,替换phoenix原来的配置文件。
(3)重启hbase集群,使Phoenix的jar包生效。
3.5、验证是否成功
(1)在phoenix/bin下输入命令:
端口可以省略
[root@itcast01 bin]# ./sqlline.py itcast01:2181
出现如下界面说明启动成功
在这里插入图片描述
(2)输入!tables 查看都有哪些表。红框部分是用户建的表,其他为Phoenix系统表,系统表中维护了用户表的元数据信息。
±-----------±-------------±---------------±--------------±---------±-----------±----------------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCIN |
±-----------±-------------±---------------±--------------±---------±-----------±----------------+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | |
| | SYSTEM | STATS | SYSTEM TABLE | | | | |
±-----------±-------------±---------------±--------------±---------±-----------±----------------+
(3)退出Phoenix。输入!quit
在这里插入图片描述
4. Phoenix使用

Phoenix可以有4种方式调用:

批处理方式
命令行方式
GUI方式
JDBC调用方式
4.1 批处理方式
4.1.1 创建user_phoenix.sql文件
内容如下
CREATE TABLE IF NOT EXISTS user_phoenix ( state CHAR(2) NOT NULL, city VARCHAR NOT NULL, population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city));
4.1.2 创建user_phoenix.csv数据文件
NY,New York,8143197
CA,Los Angeles,3844829
IL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值