问题导读
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表是否被创建成功
list

查看USER表结构

describe '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('', 'admin', 'admin');

2.3 查询数据

查询user表中数据

select * from user;

2.4 更新数据

更新数据的语法与插入数据相同。

upsert into user(id, account, passwd) values('', 'admin', 'dimensoft');

2.5 删除数据

删除id为001的数据

delete from user where id='';

2.6 删除表

删除user数据表

drop table user;

以上就是在phoenix的CLI界面中进行简单的CRUD操作,基本上与RDBMS的操作没有太大区别,上手也比较容易。

Phoenix入门到实战(一)的更多相关文章

  1. 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

    最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...

  2. docker-9 supervisord 参考docker从入门到实战

    参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机 ...

  3. webpack入门和实战(一):webpack配置及技巧

    一.全面理解webpack 1.什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都 ...

  4. CMake快速入门教程-实战

    http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ http://blog.csdn.net/dbzhang800/article/detai ...

  5. Sping Boot入门到实战之入门篇(三):Spring Boot属性配置

    该篇为Sping Boot入门到实战系列入门篇的第三篇.介绍Spring Boot的属性配置.   传统的Spring Web应用自定义属性一般是通过添加一个demo.properties配置文件(文 ...

  6. Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用

    该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...

  7. Sping Boot入门到实战之入门篇(一):Spring Boot简介

    该篇为Spring Boot入门到实战系列入门篇的第一篇.对Spring Boot做一个大致的介绍. 传统的基于Spring的Java Web应用,需要配置web.xml, applicationCo ...

  8. Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置

    该篇为Sping Boot入门到实战系列入门篇的第四篇.介绍Spring Boot自动化配置的基本原理与实现.   Spring Boot之所以受开发者欢迎, 其中最重要的一个因素就是其自动化配置特性 ...

  9. Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter

    在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfigu ...

随机推荐

  1. JavaScript Basic

    Exercise-1 Write a JavaScript program to display the current day and time in the following format. T ...

  2. 【Mac】屏蔽系统升级更新

    三行代码解决Mac升级弹窗,小红点数字1

  3. [JavaWeb基础] 012.Struts2 自定义标签使用

    在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...

  4. 【书签】连续型特征的归一化和离散特征的one-hot编码

    1. 连续型特征的常用的归一化方法.离散型特征one-hot编码的意义 2. 度量特征之间的相关性:余弦相似度和皮尔逊相关系数

  5. pandas手册

    https://www.dataquest.io/blog/large_files/pandas-cheat-sheet.pdf

  6. Alink漫谈(五) : 迭代计算和Superstep

    Alink漫谈(五) : 迭代计算和Superstep 目录 Alink漫谈(五) : 迭代计算和Superstep 0x00 摘要 0x01 缘由 0x02 背景概念 2.1 四层执行图 2.2 T ...

  7. Matlab GUI程序设计入门——信号发生器+时域分析

    背景:学习matlab gui编程入门,完成一个基于GUIDE的图形化界面程序,结合信号生成及分析等. 操作步骤: 1.新建程序 新建一个GUIDE程序 这里选择第一个选项,即创建一个空白的GUIDE ...

  8. PowerPC-object与elf中的符号引用

    https://mp.weixin.qq.com/s/6snzjEpDT4uQuCI2Nx9VcQ   一. 符号引用 编译会先把每个源代码文件编译成object目标文件,然后把所有目标文件链接到一起 ...

  9. CSS3新增伪类有那些?

    p:first-of-type 选择属于其父元素的首个元素 p:last-of-type 选择属于其父元素的最后元素 p:only-of-type 选择属于其父元素唯一的元素 p:only-child ...

  10. 手写 new

    /* 基于内置的 new 关键词,我们可以创建 Dog 的一个实例 zhangsan ,实例可以调用原型上的属性和方法 需求:自己实现一个 _new 方法,也可以模拟出内置 new 后的结果 */ / ...