什么是Phoenix?
phoenix,中文译为“凤凰”,很美的名字。Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。Phoenix是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询HBase数据。
支持SQL的还有Hive和Impala。但是Hive和Impala还可以查询文本文件,Phoenix只能查Hbase。
Phoenix是构建在HBase之上的SQL引擎。其查询效率相同或高于Hbase原生查询性能,同时提高了开发效率,降低学习成本。除此之外,Phoenix还做了一些增强功能来更多地优化性能,例如二级索引、跳过扫描过滤器优化IN,LIKE,OR查询、优化主键。
Phoenix的安装部署
1 、提前安装好ZK集群、hadoop集群、Hbase集群
2、从对应的地址下载:http://mirrors.cnnic.cn/apache/phoenix/
这里我们使用的是:apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz
3、上传、解压
将对应的安装包上传到对应的Hbase集群其中一个服务器的/export/softwares目录下
解压:tar zxvf apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz -C /export/servers/
重命名:mv apache-phoenix-4.14.0-cdh5.14.2-bin/ phoenix
·4、配置
(1) 将phoenix目录下的phoenix-4.14.0-cdh5.14.2-server.jar拷贝到各个 hbase的lib目录下。
在hbase 配置值文件hbase-site.xml文件中添加配置
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
同步至所有hbase节点后,将本机 节点的 hbase-site.xml拷贝到 phoenix/bin 目录下
(2)重启hbase集群,使Phoenix的jar包生效。
5、验证是否成功
在phoenix/bin下输入命令:
端口可以省略
[root@node01 bin]# sqlline.py node001:2181
出现如下界面说明启动成功
输入 !tables 查看都有哪些表。SYSTEM 为Phoenix 系统表,系统表中维护了用户表的元数据信息。
退出 Phoenix。输入 !quit 或 !q