hbase本身不支持SQL查询,为了实现这个功能,引入了phoenix,通过它可以实现hbase的sql查询。这里记录下如何配置并使用phoenix来操作hbase。

1. 下载地址

phoenix下载地址:http://apache.fayea.com/phoenix/



注意:phoenix和hbase之前存在版本对应关系,我使用的hbase版本是1.1.3,所以我下载的phoenix版本是apache-phoenix-4.14.0-HBase-1.1-bin.tar.gz。

2. 配置phoenix

(1). 解压文件 tar -zxvf apache-phoenix-4.14.0-HBase-1.1-bin.tar.gz

(2). 拷贝phoenix-4.14.0-HBase-1.1-client.jarphoenix-core-4.14.0-HBase-1.1.jar 这两个文件到hbase的lib目录下。

注意:如果hbase是集群模式部署,需要拷贝这两个文件到每个hbase的lib目录下。

(3). 复制hbase-site.xml文件到phoenix的bin目录下 apache-phoenix-4.14.0-HBase-1.1-bin/bin

(4). 重启hbase服务(必须重启hbase服务,否则phoenix将不能正常启动)

sh stop-hbase.sh
sh start-hbase.sh

3. 启动phoenix

进入到phoenix的bin目录下,执行命令./sqlline.py host:port,其中host是主机名,port为zookeeper端口



如上图所示,已进入phoenix的控制台。

4. 用法简介

(1). !tables命令可以查看有哪些表,注意:只能查询到通过phoenix创建的表,通过hbase创建的表无法看到



(2). 创建视图,将hbase上的表映射到phoenix中

#首先在hbase上创建一个表student,包含一个列簇info
hbase(main):004:0> create "student","info"
0 row(s) in 2.6890 seconds => Hbase::Table - student #向student表中插入一行数据
hbase(main):009:0> put "student","001","info:name","tom"
0 row(s) in 0.0250 seconds hbase(main):010:0> put "student","001","info:age","23"
0 row(s) in 0.0090 seconds #接下来,进入phoenix的控制台,创建student的视图
0: jdbc:phoenix:node3:2181> create view "student"(rid varchar primary key,"info"."name" varchar,"info"."age" varchar); #查询
0: jdbc:phoenix:node3:2181> select * from "student";
+------+-------+------+
| RID | name | age |
+------+-------+------+
| 001 | tom | 23 |
+------+-------+------+
1 row selected (0.326 seconds)

使用phoenix连接hbase的更多相关文章

  1. phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. java phoenix 连接hbase

    <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core& ...

  3. Squirrel GUI+ Phoenix 连接Hbase

    一. 参考 http://blog.csdn.net/maomaosi2009/article/details/45598823 二. 问题解决 >Squirrel Client Connect ...

  4. 通过phoenix在hbase上创建二级索引,Secondary Indexing

    环境描述: 操作系统版本:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 phoenix版本:phoenix-4.10.0 hbase版本: ...

  5. Phoenix连接安全模式下的HBase集群

    Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...

  6. [saiku] 使用 Apache Phoenix and HBase 结合 saiku 做大数据查询分析

    saiku不仅可以对传统的RDBMS里面的数据做OLAP分析,还可以对Nosql数据库如Hbase做统计分析. 本文简单介绍下一个使用saiku去查询分析hbase数据的例子. 1.phoenix和h ...

  7. Java访问Phoenix连接

    两种方法,一种是直接使用jdbc连接,一种是使用spring连接. jdbc连接和访问oracle步骤相同: ///////////// 测试Phoenix连接 /////////////// Str ...

  8. Phoenix on HBase

    (一)概要 Apache Phoenix是基于BSD许可开源的一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Apache Phoenix主要特性: 嵌入式的JDBC驱动, ...

  9. Hbase(6)【Java Api Phoenix操作Hbase】

    目录 两种方式操作Phoenix 1.Thick Driver 2.Thin Driver 3.注意事项 两种方式操作Phoenix 官网:http://phoenix.apache.org/faq. ...

随机推荐

  1. gtk.Builder.AddFromFile SIGSEGV.

    可能是由于GTK没有初始化的缘故,在程序开头加上gtk.Init(nil)进行初始化 或者参考我这篇博客就不会出错了

  2. Kafka 为什么快

    Kafka 为什么能那么快 | Kafka高效读写数据的原因 无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker ...

  3. 【NOI2015】荷马史诗 - 哈夫曼树

    题目描述 追逐影子的人,自己就是影子 ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...

  4. (java)剑指offer二维数组中的查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从 上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. pu ...

  5. 月历输出php代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 6. 二十不惑,ObjectMapper使用也不再迷惑

    一滴水,用显微镜看,也是一个大世界.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...

  7. Kafka 0.10.1版本源码 Idea编译

    Kafka 0.10.1版本源码 Idea编译 1.环境准备 Jdk 1.8 Scala 2.11.12:下载scala-2.11.12.msi并配置环境变量 Gradle 5.6.4: 下载Grad ...

  8. 轻轻松松学CSS:float

    float属性,会使元素向左或向右移动,其周围的元素也会重新排列.float不仅自己飘忽不定,还对周围元素有影响,这种影响力不容小觑.他捉摸不定(浮动规律不好把握),他干涉他国内政(对周围元素有影响) ...

  9. Labview学习之路(五)按钮的机械动作

    布尔类型中有一个按钮是非常重要的控件,他不是只是表示一个确定,输出0或1,下边我们共同探讨一下他的机械动作 单击时转换 释放时转换 保持转换直到释放 单击时触发 释放时触发 保持触发直到释放 单击时转 ...

  10. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?