`
wx1569578408
  • 浏览: 71548 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Hbase 学习(九) 华为二级索引(原理)

 
阅读更多

这个是华为的二级索引方案,已经开放源代码了,下面是网上的一篇讲解原理的帖子,发出来和大家共享一下。

经过本人认真阅读了一下代码,发现这个源码仅供参考,想要集成到原有的集群当中是有点儿难度的,它对hbase的源码进行不少的修改。

源码地址:https://github.com/Huawei-Hadoop/hindex

下面来对其方案做一个分析。

1.整体架构

这个架构在Client Ext中设定索引细节,在Balancer中收集信息,在Coprocessor中管理二级索引数据。

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

2.表创建

在创建表的时候,在同一个region server上创建索引表,且一一对应。

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

3.插入操作

在主表中插入某条数据后,用Coprocessor将索引列写到索引表中去,写道索引表中的数据的主键为:region开始key+索引名+索引列值+主表row key。这么做,是为了让其在同一个分布规则下,索引表会跟主表在通过region server上,在查询的时候就可以少一次rpc。

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

4.scan操作

一个查询到来的时候,通过coprocessor钩子,先从索引表中查询范围row,然后再从主表中相关row中扫描获得最终数据。

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

5. split操作处理

为了使主表和索引表在同一个RS上,要禁用索引表的自动和手动split,只能由主表split的时候触发,当主表split的时候,对索引表按其对应数据进行划分,同时,对索引表的第二个daughter split的row key的前面部分修改为对应的主键的row key。

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

6. 性能

查询性能极大提升,插入性能下降10%左右

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

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

总结,本文对华为hbase使用coprocessor进行二级索引的方案的创建表,插入数据,查询数据的步骤进行了一个粗略分析,以窥其全貌。在使用的时候,可以作为一个参考。

转载自:http://www.dengchuanhua.com/167.html


转载于:https://my.oschina.net/u/923508/blog/413129

分享到:
评论

相关推荐

    HBase二级索引

    根据华为公布的 HBase 二级索引实现方案,本方案主要参照了该方案,设计了 HBase 的二级索引机制。 知识点一:HBase 二级索引实现方案的概要设计 HBase 二级索引实现方案的主要思路是,为每个 DataTable 创建一个...

    HBase二级索引实现方案

    本方案主要参照了华为公布的HBase二级索引实现方案。为每个DataTable创建一个与之对应的IndexTable,通过各种途径,保证IndexTable Region与DataTable Region一一对应,并且存储在同一个RegionServer上。

    HBase_Secondary_Index

    描述部分提到的“hbase构建二级索引指南,详细介绍了hbase的二级索引的实现机制”指出了文章将深入介绍如何在HBase中实现二级索引,包括它的原理和构建方法。实现机制涉及的可能包括索引数据结构的选择、索引的创建...

    Secondary Indexing in Phoenix

    以及华为的Server-local indexes和Buddy regions,这些方法都是尝试解决HBase中二级索引的问题。 #### 六、不可变索引 不可变索引是一种较为简单的索引实现方式。它们通常是由客户端管理的,并且可以通过批量加载...

    华为大数据考试资料.pdf

    12. HBase二级索引:HBase支持二级索引,它通过将要查找的列与RowKey关联来创建新的索引表,使得查询更加灵活。二级索引会增加查询次数,因为查询分为两次:一次是通过二级索引表查询到RowKey,第二次是通过RowKey...

    华为大数据内部培训资料

    本培训资料将深入解析FusionInsight HD的产品特性,以及与其相关的HDFS(Hadoop Distributed File System)、HBASE、Spark和Solr等关键技术的架构原理与二次开发方法。 首先,FusionInsight HD是华为面向企业级...

    基于日志结构合并树的轻量级分布式索引实现方法.pdf

    通过与华为的二级索引方案HIndex进行对比,从索引构建的时间和空间开销、索引查询性能和系统负载均衡等性能方面进行了分析。实验结果表明,所提出的方法使得查询性能提升了50到200倍,这验证了方法的有效性。 通过...

    心跳检测(如Tomcat,Jetty)的JAVA 微服务应用程序.rar

    java5的日志框架 log5j  课课家觉得log5j在log4j的基础上提供了几个改进,应该说是简单和实用的封装。有趣的是log5j主页对自己名字的解释,因为要感谢JDk ... hindex 是华为公司开发的纯 Java 编写的 HBase 二级索引

    FusionInsight_HD_V100R002C50_应用开发指南_03(pdf)

    FusionInsight HD是华为的一款企业级大数据处理平台,它基于Hadoop生态系统,集成了HDFS、MapReduce、YARN、HBase、Hive、Spark等多种组件,提供了一站式的数据分析与处理解决方案。系统架构主要包括以下几个部分: ...

Global site tag (gtag.js) - Google Analytics