问题导读 1.你认为Apache Phoenix与HBase的关系是什么? 2.Phoenix安装需要哪些软件? 3.如何部署Phoenix?
Introduction
Apache Phoenix is a relational database layer over HBase delivered as a client-embedded JDBC driver targeting low latency queries over HBase data. Apache Phoenix takes your SQL versioned, such that snapshot queries over prior versions will automatically use the correct performance on the order of milliseconds for small queries, or seconds for tens of millions of rows. Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对HBase中的数据进行低延迟访问。Apache Phoenix会将用户编写的sql查询编译为一系列的scan操作,最终产生通用的JDBC结果集返回给客户端。数据表的元数据存储在HBase的表中被会标记版本号,所以进行查询的时候会自动选择正确的schema。直接使用HBase的API,结合协处理器(coprocessor)和自定义的过滤器的话,小范围的查询在毫秒级响应,千万数据的话响应速度为秒级。
Phoenix在Hadoop生态系统中的位置
Phoenix官网
#########################################################
1. 说明 本篇主要介绍Phoenix的安装部署。系统环境如下:
- Centos-6.4 (64-bit)
- Jdk-1.7.0_75
- Hadoop-2.5.0-cdh5.2.0
- Zookeeper-3.4.5-cdh5.2.0
- Hbase-0.98.6-cdh5.2.0
- Solr-4.4.0-cdh5.2.0
- Hbase-solr-1.5-cdh5.2.0
- Sqoop-1.4.5-cdh5.2.0
- Sqoop2-1.99.3-cdh5.2.0
- Hive-0.13.1-cdh5.2.0
- Flume-ng-1.5.0-cdh5.2.0
2. 下载
从官网下载安装包
这里需要注意不同版本的phoenix与HBase的兼容性
我目前使用的HBase版本为hbase-0.98.6-cdh5.2.0,因此下载phoenix4.x的
上面的下载地址是镜像地址,如果不可用的话可以从下载选择其他镜像地址
3. 安装
安装过程参考官网链接
3.1 上传部署
将phoenix-4.2.2-bin.tar.gz上传到服务器解压重命名为phoenix-4.2.2,【PHOENIX_HOME】为【/usr/local/cdh-5.2.0/phoenix-4.2.2】
3.2 拷贝jar包
将【PHOENIX_HOME】目录下的phoenix-[version]-server.jar添加到HBase集群的所有regionserver节点的lib目录下(use phoenix-core-[version].jar for Phoenix 3.x),然后重启HBase集群。
3.3 连接HBase
进入【PHOENIX_HOME/bin】目录下启动客户端进入CLI界面,执行如下命令连接HBase集群。 $ ./sqlline.py 192.168.187.128,192.168.187.129,192.168.187.130:2181
高能预警:这里的192.168.187.128,192.168.187.129,192.168.187.130参数是HBase集群zookeeper集群的ip地址,2181是zookeeper端口号。
查看当前所有表 > !tables
高能预警:CATALOG、SEQUENCE、STATS这三张表是系统自带的表。HBase中已存在的表不会自动映射过来,需要手动创建相同结果的数据表,具体过程后面会说到。 从HBase的CLI界面查看是否同样多出这三张表 > list
安装成功。
问题导读
1.Phoenix插入数据,使用哪个关键字? 2.Phoenix更新数据是否与关系数据库语句相同?
1. 说明
本篇主要介绍在phoenix的CLI中进行简单的CRUD操作。phoenix中支持的命令如下:
详细的命令语法参考官网说明
http://phoenix.apache.org/language/index.html
2. CURD
在CLI中进行创建表、插入数据、查询数据、更新数据、删除数据、删除表的操作。
2.1 创建表 创建user数据表
CREATE TABLE user (id varchar PRIMARY KEY,account varchar ,passwd varchar);
高能预警:Phoenix会自动将表名和字段名转换为大写字母,如果不想转换的话可以使用双引号括起来
进入HBase的CLI界面查看user表是否被创建成功
查看USER表结构
从上图得知,默认列族为0,id主键字段对应到hbase的ROW字段。
高能预警:如果想指定列族与列的话使用如下语句建表
CREATE TABLE user (id varchar PRIMARY KEY,INFO.account varchar ,INFO.passwd varchar);
2.2 插入数据
插入数据到user表中,这里的命令与RDBMS中插入数据语法稍有差别。upsert
upsert into user(id, account, passwd) values('001', 'admin', 'admin');
2.3 查询数据
查询user表中数据
2.4 更新数据
更新数据的语法与插入数据相同。
upsert into user(id, account, passwd) values('001', 'admin', 'dimensoft');
2.5 删除数据
删除id为001的数据
delete from user where id='001';
2.6 删除表
删除user数据表
以上就是在phoenix的CLI界面中进行简单的CRUD操作,基本上与RDBMS的操作没有太大区别,上手也比较容易。
|