丁萱益优秀作者
原创内容 来源:小居数码网 时间:2024-08-11 12:32:01 阅读() 收藏:21 分享:47 爆
导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有989个文字,大小约为4KB,预计阅读时间3分钟。
HBase是一个构建在HDFS之上,用于海量数据、分布式列存储系统。它只能通过RowKey直接获取数据,不能够实现类似于MySQL组合索引方式的查询,因此我们考虑到位HBase建立二级索引。
1、官方特性
其实从0.94版本开始,HBase官方文档已经提出了HBase上面实现二级索引的一种路径:
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开发,自行在外部构建和维护索引关系也是另外一种方式。
常见的是采用底层基于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 索引查询流程示意图:
作者重点推荐这个方案。
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