Phoenix创建Hbase二级索引

第1章 Phoenix简介

1.1 Phoenix定义

Phoenix是HBase的开源SQL皮肤。可以使用标准JDBC API代替HBase客户端API来创建表,插入数据和查询HBase数据。

1.2 Phoenix特点

  1. 容易集成:如Spark,Hive,Pig,Flume和Map Reduce。

  2. 性能好:直接使用HBase API以及协处理器和自定义过滤器,可以为小型查询提供毫秒级的性能,或者为数千万行提供数秒的性能。

  3. 操作简单:DML命令以及通过DDL命令创建表和版本化增量更改。

  4. 安全功能: 支持GRANT和REVOKE 。

  5. 完美支持Hbase二级索引创建。

第2章 Phoenix创建Hbase二级索引

2.1 配置Hbase支持Phoenix创建二级索引

2.1.1 添加如下配置到Hbase的Hregionserver节点的hbase-site.xml

  <!-- phoenix regionserver 配置参数  -->
<property>  <name>hbase.regionserver.wal.codec</name>                  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>     <property>  <name>hbase.region.server.rpc.scheduler.factory.class</name>  <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>  <description>Factory  to create the Phoenix RPC Scheduler that uses separate queues for index and  metadata updates</description>
</property>     <property>  <name>hbase.rpc.controllerfactory.class</name>  <value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>  <description>Factory  to create the Phoenix RPC Scheduler that uses separate queues for index and  metadata updates</description>
</property>

2.1.2 添加如下配置到Hbase中Hmaster节点的hbase-site.xml中

  <!-- phoenix master 配置参数  -->
<property>  <name>hbase.master.loadbalancer.class</name>  <value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>
</property>  <property>  <name>hbase.coprocessor.master.classes</name>      <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
</property>

2.1.3 常见问题汇总:

1)注意:网上配置文档里有这一条,但在实际测试中(测试环境hbase-1.3.1,网上0.98.6),加入该条的regionserver会在hbase启动时失败,对应节点上没有HregionServer进程,去掉该配置后正常启动,且能正常创建local index。

<property>  <name>hbase.coprocessor.regionserver.classes</name><value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>
</property>

2)hbase-site.xml的zookeeeper的配置信息不能加2181,否则在创建local index的时候会报以下异常:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QF40WL2h-1627632685904)(file:///C:/Users/86178/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]

正常配置:

<property>        <name>hbase.zookeeper.quorum</name>      <value>hadoop101,hadoop102,hadoop103</value>
</property>

2.2 创建索引

2.2.1 phoenix的索引分类

1)global index是默认的索引格式。适用于多读少写的业务场景。写数据的时候会消耗大量开销,因为索引表也要更新,而索引表是分布在不同的数据节点上的,跨节点的数据传输带来了较大的性能消耗。在读数据的时候Phoenix会选择索引表来降低查询消耗的时间。如果想查询的字段不是索引字段的话索引表不会被使用,也就是说不会带来查询速度的提升。

CREATE INDEX my_index ON my_table (my_index)

2)Local index适用于写操作频繁的场景。索引数据和数据表的数据是存放在相同的服务器中的,避免了在写操作的时候往不同服务器的索引表中写索引带来的额外开销。查询的字段不是索引字段索引表也会被使用,这会带来查询速度的提升。

CREATE LOCAL INDEX my_index ON my_table (my_index)

2.2.2 三种提升效率查询方式

1) CREATE INDEX my_index ON my_table (v1) INCLUDE (v2)
2) SELECT /*+ INDEX(my_table my_index) */ v2 FROM my_table WHERE v1 = ‘foo’
3) CREATE LOCAL INDEX my_index ON my_table (v1)

2.2.3 如何删除索引

DROP INDEX my_index ON my_table

CREATE LOCAL INDEX my_index ON my_table (v1) |

2.2.3 如何删除索引

DROP INDEX my_index ON my_table


Phoenix创建Hbase二级索引相关推荐

  1. CDH 6 安装 Hbase 二级索引 Solr + Key-Value Store Indexer

    目录 一.集群安装Solr +  Key-Value Store Indexer 二.创建Hbase二级索引 1.更改表结构,允许复制 2.创建相应的SolrCloud集合 3.创建 collecti ...

  2. 使用solr构建hbase二级索引

    使用solr构建hbase二级索引 @(HBASE)[hbase, solr] 使用solr构建hbase二级索引 一概述 一业务场景描述 二技术方案 1技术方案一 2技术方案二 3关于索引的建议 二 ...

  3. hbase组合rowkey_「从零单排HBase 11」HBase二级索引解决方案

    HBase一个令人惋惜的地方,就是不支持二级索引.因此,社区有了很多补充方案来填补HBase的二级索引能力的缺陷. 今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景 ...

  4. 基于Solr的Hbase二级索引

    关于Hbase二级索引 HBase 是一个列存数据库,每行数据只有一个主键RowKey,无法依据指定列的数据进行检索.查询时需要通过RowKey进行检索,然后查看指定列的数据是什么,效率低下.在实际应 ...

  5. 基于ES的HBase二级索引方案

    HBase不支持多条件查询,不提供二级索引,难以满足用户对检索功能多样性和高效率两方面的需求.由索引模块的需求分析可知,本文解决通过,提出数据与索引的分离,利用HBase数据库的存储模式灵活多变,容纳 ...

  6. 华为HBase 二级索引调研

    1.Overall Solution 解决思想: 一个user table对应一个index table index的创建与更新全部在RS端的cp-processor里实现 核心思想:一个actual ...

  7. Phoenix+Hbase二级索引

    使用的软件版本,注意软件版本很重要,很重要 apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz hadoop-2.9.2.tar.gz hbase-2.0.5-bin. ...

  8. 阿里云EMR异步构建云HBase二级索引

    一.非HA EMR构建二级索引 云HBase借助Phoenix实现二级索引功能,对于Phoenix二级索引的详细介绍可参考https://yq.aliyun.com/articles/536850?s ...

  9. HBase二级索引的设计与应用(详解)

    最近面试,涉及到了HBase的多条件组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowKe ...

  10. 华为hbase二级索引(secondary index)细节分析

    转载自:http://ju.outofmemory.cn/entry/50610 华为在HBTC 2012上由其高级技术经理Anoop Sam John透露了其二级索引方案,这在业界引起极大的反响,甚 ...

最新文章

  1. EOSIO 转帐详解
  2. laravel-admin 安装(总结)
  3. C#(WINFORM)学习
  4. 编译原理(一)之词法分析
  5. JS基础_break和continue
  6. 【HDU - 5455】Fang Fang(水题,有坑)
  7. hdu3526(最小费用流)
  8. 一条来自 GitHub 重磅消息!
  9. PHP教程 数据库和MySQL,PHP与MYSQL数据库连接教程分享
  10. JavaScript 一维数组、二维数组(某个属性)去重方法
  11. windows下设置PHP环境变量
  12. 疯狂的程序员 兼职(下)
  13. mmdetection3D---(1)
  14. 在Apple Watch上了解时间旅行
  15. mac版python怎么运行_mac 怎么运行python
  16. 手机无线如何共享给台式计算机,怎么把电脑网络共享给手机上网
  17. 分立元器件--电阻的特性以及工程使用注意事项
  18. 万字长文让您搞懂云原生!
  19. 微信小程序:喝酒娱乐小游戏助力神器
  20. NT151应用案例:西门子PLC S7-1200与派克ACR9000的通信(Part 2)

热门文章

  1. 传智播客python高级-2018年传智播客黑马python15期
  2. JUnit5学习之一:基本操作
  3. kali之iwconfig
  4. SQL语句基础-多表连接查询
  5. Ubuntu下载安装CUDA
  6. 图书馆图书借阅登记微信小程序开发制作管理软件系统
  7. web测试点和app测试点
  8. STM32制作flash烧写器 spi flash
  9. Microsoft Visio 2010 - 直线连接线
  10. 再见2021:是校园和职场的交接也是25本书