欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

HBase二级索引建设方案分析(Hbase二级索引)

数码知识

丁萱益优秀作者

原创内容 来源:小居数码网 时间:2024-08-11 12:32:01 阅读() 收藏:21 分享:47

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有989个文字,大小约为4KB,预计阅读时间3分钟。

HBase是一个构建在HDFS之上,用于海量数据、分布式列存储系统。它只能通过RowKey直接获取数据,不能够实现类似于MySQL组合索引方式的查询,因此我们考虑到位HBase建立二级索引。

Hbase二级索引

一、基于Coprocessor方案

1、官方特性

其实从0.94版本开始,HBase官方文档已经提出了HBase上面实现二级索引的一种路径:

  • 基于Coprocessor(0.92版本开始引入,达到支持类似传统RDBMS的触发器的行为);
  • 开发自定义数据处理逻辑,采用数据“双写”(dual-write)策略,在有数据写入同时同步到二级索引表;
  • 2、开源方案

    虽然官方一直也没提供内置的支持二级索引的工具, 不过业界也有些比较知名的基于Coprocessor的开源方案:

    (1)华为的hindex : 基于0.94版本,当年刚出来的时候比较火,但是版本较旧,看GitHub项目地址最近这几年就没更新过。

    (2)Apache Phoenix: 功能围绕着SQL on hbase,支持和兼容多个hbase版本, 二级索引只是其中一块功能。 二级索引的创建和管理直接有SQL语法支持,使用起来很简便, 该项目目前社区活跃度和版本更新迭代情况都比较好。

    Apache Phoenix在目前开源的方案中,是一个比较优的选择。主打SQL on HBase ,基于SQL能完成HBase的CRUD操作,支持JDBC协议。

    Apache Phoenix在Hadoop生态里面位置:

    3. 方案优缺点

    优点: 基于Coprocessor的方案,从开发设计的角度看,把很多对二级索引管理的细节都封装在的Coprocessor具体实现类里面, 这些细节对外面读写的人是无感知的,简化了数据访问者的使用。

    缺点: 但是Coprocessor的方案入侵性比较强,增加了在Region server内部需要运行和维护二级索引关系表的代码逻辑等,对Region server的性能会有一定影响。

    二、非Coprocessor方案

    选择不基于Coprocessor开发,自行在外部构建和维护索引关系也是另外一种方式。

    常见的是采用底层基于Apache Lucene的Elasticsearch(下面简称ES)或Apache Solr ,来构建强大的索引能力、搜索能力,例如支持模糊查询、全文检索、组合查询、排序等。

    1、Lily HBase Indexer

    Lily HBase Indexer(也简称 HBase Indexer)是国外的NGDATA公司开源的基于solr的索引构建工具, 特色是其基于HBase的备份机制,开发了一个叫SEP工具, 通过监控HBase 的WAL日志(Put/Delete操作),来触发对solr集群索引的异步更新, 基本对HBase无侵入性(但必须开启WAL )。

    从github上来看,Lily HBase Indexer项目已经比较长时间没有更新了。

    2、CDH Search

    CDH Search是Hadoop发行商Cloudera公司开发的基于solr的HBase检索方案,部分集成了Lily HBase Indexer的功能。

    CDH Solr 索引查询流程示意图:

    三、基于Elasticsearch的HBase二级索引方案

    作者重点推荐这个方案。

    HBase作为基础存储,Elasticsearch作为数据索引。根据业务需求,判断哪些需要建立二级索引,存入 Elasticsearch中,建立索引与HBase的关联外键,可以实现实时搜索。

    本项目实例涉及到如下一些技术点,技术实现难度4颗星(总共5颗星)。

    1. Elasticsearch

    Elasticsearch以及Elasticsearch内置API-Java High Level REST Client等等;对Elasticsearch不熟悉的伙伴,可以参考小编的Elasticsearch技术专栏。

    2. HBase

    HBase安装部署、常用的Shell命令,以及基于HBase Java API编程等等;具体可以访问本技术专栏前面关于HBase的文章。

    3. Spring Boot

    基于Spring Boot构建微服务应用,并集成Elasticsearch的Java High Level REST Client API。具体可以参考小编的Spring Boot技术专栏。

    上面就是小居数码小编今天给大家介绍的关于(Hbase二级索引)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

    94%的朋友还想知道的:

    (243)个朋友认为回复得到帮助。

    部分文章信息来源于以及网友投稿,转载请说明出处。

    本文标题:HBase二级索引建设方案分析(Hbase二级索引):http://sjzlt.cn/shuma/154608.html

    猜你喜欢