简介

HBase、Hive都是构建在HDFS之上,而Phoenix则是构建在HBase之上,基于HBase的API,让我们能够以SQL的方式,更高效专业的与HBase交互。
基于Phoenix,除了Phoenix命令行,也可以通过可视化界面SQuirrel来操作HBase中Phoenix Tables。
Phoenix官网:https://phoenix.apache.org/language/index.html 官网中Phoenix 语法、数据类型、函数、Join操作、子查询等写的非常清楚,可多参考官网。

Phoenix安装

1、Phoenix节点规划

HOST 角色
node1 ZooKeeper、HMaster、HRegionServer
node2 ZooKeeper、HRegionServer
node3 ZooKeeper、HRegionServer、HBase Client、Phoenix(待安装)
node4 HRegionServer、HBase Client

2、下载解压Phoenix

#官网下载phoenix:http://phoenix.apache.org/download.html
#选择适合hbase版本的Phoenix,这里hbase版本1.1.2
[root@node3 ~]# wget http://mirrors.hust.edu.cn/apache/phoenix/apache-phoenix-4.13.1-HBase-1.1/bin/apache-phoenix-4.13.1-HBase-1.1-bin.tar.gz
#解压
[root@node3 ~]# tar -zxvf apache-phoenix-4.13.1-HBase-1.1-bin.tar.gz

3、移除jar包

移除HBase region server和master server lib目录中先前版本的phoenix-*-server.jar包

[root@node1 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node2 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node3 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node4 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk

4、拷贝jar包

拷贝phoenix中phoenix-*-server.jar到HBase所有region server 和 master server lib目录

#拷贝到node1 region server 和 master server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node1:/usr/hdp/2.6.4.0-91/hbase/lib
#拷贝到node2 region server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node2:/usr/hdp/2.6.4.0-91/hbase/lib
#拷贝到node3 region server lib
[root@node3 ~]# cp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar /usr/hdp/2.6.4.0-91/hbase/lib
#拷贝到node4 region server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node4:/usr/hdp/2.6.4.0-91/hbase/lib

5、拷贝hbase-site.xml到phoenix bin目录

[root@node3 bin]# cp /usr/hdp/2.6.4.0-91/hbase/conf/hbase-site.xml .

6、重启HBase

通过Phoenix 命令行使用HBase

1、进入命令行

[root@node3 bin]# pwd
/root/apache-phoenix-4.13.1-HBase-1.1-bin/bin
#node2是ZooKeeper其中一个节点,端口默认2181
[root@node3 bin]# python sqlline.py node2

2、Phoenix 命令

Phoenix语法:https://phoenix.apache.org/language/index.html
#查看所有命令
help
#创建表 可指定表空间
create table if not exists student.baseInfo(
 id integer not null primary key,
 name varchar,
 age integer,
 gender boolean default false
 );
#查看表结构
!desc student.baseInfo;
#插入数据
upsert into student.baseInfo (id,name,age,gender) values(1,'A',5,false);
upsert into student.baseInfo (id,name,age,gender) values(2,'B',5,false);
upsert into student.baseInfo (id,name,age,gender) values(3,'A',5,true);
upsert into student.baseInfo (id,name,age,gender) values(4,'A',5,false);
upsert into student.baseInfo (id,name,age,gender) values(5,'A',5,true);
upsert into student.baseInfo (id,name,age,gender) values(6,'B',5,false)#查看数据
select * from student.baseInfo;
+-----+-------+------+---------+
| ID  | NAME  | AGE  | GENDER  |
+-----+-------+------+---------+
| 1   | A     | 5    | false   |
| 2   | B     | 5    | false   |
| 3   | A     | 5    | true    |
| 4   | A     | 5    | false   |
| 5   | A     | 5    | true    |
| 6   | B     | 5    | false   |
+-----+-------+------+---------+
#更新数据
upsert into student.baseInfo (id,name,age,gender) values(1,'A',16,false);
#再查看更新的数据
select * from student.baseInfo where id=1;
+-----+-------+------+---------+
| ID  | NAME  | AGE  | GENDER  |
+-----+-------+------+---------+
| 1   | A     | 16   | false   |
+-----+-------+------+---------+
#聚合统计排序
select gender,sum(age) as sumAge,count(id) as countID from student.baseInfo group by gender order by countID desc;
+---------+---------+----------+
| GENDER  | SUMAGE  | COUNTID  |
+---------+---------+----------+
| false   | 31      | 4        |
| true    | 10      | 2        |
+---------+---------+----------+

通过SQuirrel SQL Client访问HBase中Phoenix Table

1、下载安装SQuirreL SQL Client

#下载
http://squirrel-sql.sourceforge.net/
#安装
java -jar squirrel-sql-snapshot-20180226_2207-standard.jar

2、复制phoenix-hbase-client jar到SQuirrel lib目录

phoenix-4.13.1-HBase-1.1-client.jar

3、添加驱动Dirver

Name:Phoenix
Example URL: jdbc:phoenix:zkNode
Class Name:org.apache.phoenix.jdbc.PhoenixDriver

4、创建连接别名Alias

Name: any name
Driver: Phoenix
URL:jdbc:phoenix:zkNode:2181:/hbase-unsecure
User Name: anything
Password: anything

5、查看phoenix表内容

6、Sql分组聚合查询

Phoenix安装与两种方式使用相关推荐

  1. Linux 安装 jdk ( 两种方式 )

    安装jdk有两种方法:手动安装 yum安装. 方式一: yum安装 1.查询要安装jdk的版本, 命令:yum -y list java* 2.安装jdk1.8 yum install -y java ...

  2. Linux安装jdk(两种方式)

    建设上面的环境第一步肯定是安装jdk,所以和大家一起学一下基本知识centos7.5安装jdk1.8. 安装jdk有两种方法:手动安装 yum安装. yum安装如下: 1.查询要安装jdk的版本: 命 ...

  3. ubuntu 安装redis两种方式 教程

    方式一: 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redi ...

  4. linux 安装mysql两种方式

    yum -y install gcc gcc-c++ ncurses-devel cmake  bison   zlib    zlib-devel libxml  openssl   dtrace ...

  5. CentOS 8 安装 JAVA 三种方式(yum / rpm / tar.gz)

    JAVA 8:官方下载 JAVA 11:官方下载 手动安装的两种方式,在安装前统一在usr目录下创建一个JAVA目录 mkdir /usr/java [root@CentOS8 ~]# mkdir / ...

  6. linux下安装mysql的方式_linux下安装mysql的两种方式

    linux下安装mysql的两种方式 1 源码安装 1 创建mysql用户: useradd mysql passwd mysql 2 解压缩下载的mysql包: tar -zxvf mysql-5. ...

  7. 怎么看python环境变量配置是否好了验证图片_简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程...

    加个"星标",每天一起快乐的学习 今 日 鸡 汤 闻道欲来相问讯,西楼望月几回圆. /1 前言/ 大家好,我是 Rocky0429,今天我给大家介绍一下验证Anaconda是否安装 ...

  8. Java技术分享:升级所安装Java版本的两种方式

    在进行Java开发的时候我们可能会需要升级所安装的Java版本,那么你知道应该如何安装吗?小千今天就来给大家介绍两种方式. 一.卸载掉原本安装的Java,下载最新安装包安装即可. 这个步骤就不介绍了, ...

  9. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    阅读目录 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5.变量(♥♥ ...

最新文章

  1. GROMACS运行参数整理(二)
  2. 关于java文件扩展名认识
  3. 完美应用 极通EWEBS 新版新秀
  4. linux查看native进程,Android 分析应用程序占用native内存
  5. java做一个客房管理系统定制_开题报告基于Java的酒店客房管理系统的设计与实现.doc...
  6. windows winrar 指令_Windows上WinRAR.exe命令行参数说明(转载) .
  7. vue里面rules_vue如何使用rules对表单字段进行校验
  8. vue.js 源代码学习笔记 ----- instance inject
  9. 使用Movavi Video Editor如何做局部放大的影片特效
  10. Ubuntu下.tar.bz2和.tar.gz文件的解压命令
  11. PTAM在Linux下编译运行
  12. 3Dtouch 基本原理
  13. 【托业】【语法题】笔记
  14. 循环神经网络-高级篇RNN Classifier
  15. golang代码实现chmod 777效果
  16. 让CEF支持HEVC(H.265)视频播放
  17. drupal 中基本的数据库操作
  18. 竞争学习神经网络详解
  19. ffmpeg利用滤镜合并两个视频,一左一右
  20. 智慧厕所厕位引导系统怎么建?中期科技zontree智慧公厕一探究竟

热门文章

  1. 为iPhone X设计
  2. iphone11 android,iPhone11和iPhonex有什么区别 iPhone11和iPhonex买哪个好
  3. 李宏毅nlp学习笔记04:bert和它的好朋友们
  4. WEB2.0赐予中国互联网什么力量
  5. Windows Media Player -- WMP.dll版本号与期望值不符
  6. Roberto Giobbi的纸牌大学
  7. ipad iphone开发_如何解锁iPhone或iPad
  8. Java关于数组基础的讲解
  9. CentOS7 如何注册系统服务
  10. 【小家java】Java中集合List、Set、Map删除元素的方法大总结(避免ConcurrentModificationException异常)