问题导读
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. 初识Java以及JAVA开发环境搭建

    目录 JAVA帝国的诞生 C&C++ JAVA JAVA特性和优势 JAVA三大版本 JDK.JRE.JVE JAVA开发环境搭建 JDK下载与安装.卸载 安装JDK 卸载JDK JDK目录介 ...

  2. #!/usr/bin/python

    它是用来指定用什么解释器运行脚本以及解释器所在的位置. 参考链接:https://www.cnblogs.com/qmfsun/p/6291982.html

  3. 0507 构造代码块和static案例,接口interface

    0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ...

  4. 阿里云服务器centOS安装Docker

    环境准备 1.需要有Linux的基础 2.centOS 7 环境查看 # 系统内核是 3.10 以上的 [root@iz2zeaet7s13lfkc8r3e2kz ~]# uname -r -.el7 ...

  5. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群

    1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum inst ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(一)

    上一篇(https://www.cnblogs.com/meowv/p/12966092.html)文章使用AutoMapper来处理对象与对象之间的映射关系,本篇主要围绕定时任务和数据抓取相关的知识 ...

  7. Linux 任务后台运行软件【即:终端复用器】之---screen

    会话: 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令. 用户与计算机的这种临时的交互,称为一次"会话&qu ...

  8. 路由器硬改+刷OpenWrt+挂载摄像头+U盘

    标题: 路由器硬改+刷OpenWrt+挂载摄像头+U盘 作者: 梦幻之心星 347369787@QQ.com 标签: [路由器, OpenWrt, 摄像头, 固件] 目录: 路由器 日期: 2019- ...

  9. Python之TestLink篇

    如何让时间变慢? 你们不知道吧,这个时候翻开书,时间又变慢了一倍,可以这样延年益寿,哈哈哈 ------------------------------------------------------ ...

  10. 记一次使用windbg排查内存泄漏的过程

    一.背景 近期有一个项目在运行当中出现一些问题,程序顺利启动,但是观察一阵子后发现内存使用总量在很缓慢地升高, 虽然偶尔还会往下降一些,但是总体还是不断上升:内存运行6个小时候从33M上升到80M: ...