`
qindongliang1922
  • 浏览: 2183727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117527
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125921
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59896
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71300
社区版块
存档分类
最新评论

Hbase+Solr实现二级索引提供高效查询

阅读更多

接着上一篇介绍协处理器的文章http://qindongliang.iteye.com/blog/2277145,本篇我们来实战一个例子,看下如何使用协处理来给Hbase建立二级索引。

github地址:https://github.com/qindongliang/hbase-increment-index


业务需求:

现有一张Hbase的表,数据量千万级+,而且不断有新的数据插入,或者无效数据删除,每日新增大概几百万数据,现在已经有离线的hive映射hbase
提供离线查询,但是由于性能比较低,且不支持全文检索,所以想提供一种OLAP实时在线分析的查询,并且支持常规的聚合统计和全文检索,性能在秒级别可接受

需求分析:

hbase的目前的二级索引种类非常多,但大多数都不太稳定或成熟,基于Lucene的全文检索服务SolrCloud集群和ElasticSearch集群是二种比较可靠的方案,无论需求
还是性能都能满足,而且支持容错,副本,扩容等功能,但是需要二次开发和定制。


架构拓扑:






技术实现
(1)搭建一套solr或者es集群,并且提前定制好schemal,本例中用的是solr单节点存储索引,
如果不知道怎么搭建solrcloud集群或者elasticsearch集群,请参考博客:
solrcloud集群搭建
http://qindongliang.iteye.com/blog/2275990
elasticsearch集群搭建
http://qindongliang.iteye.com/blog/2250776
(2)开发自定义的协处理器,代码已经在github上开源https://github.com/qindongliang/hbase-increment-index
(3)打包代码成一个main.jar
(4)安装依赖jar给各个Hbase节点,可以拷贝到hbase的lib目录,也可以在hbase.env.sh里面配置CLASSPATH

config-1.2.1.jar
httpclient-4.3.1.jar
httpcore-4.3.jar
httpmime-4.3.1.jar
noggit-0.6.jar
solr-solrj-5.1.0.jar


(5)上传main.jar至HDFS目录
(6)建表:
create 'c', NAME=>'cf'

(7)禁用表 disable 'c'
(8)添加协处理器的jar:

alter 'c', METHOD => 'table_att', 'coprocessor'=>'hdfs:///user/hbase_solr/hbase-increment-index.jar|com.hbase.easy.index.HbaseSolrIndexCoprocesser|1001|'


(8)激活表 enable 'c'
(9)启动solr或者es集群
(9)在hbase shell或者 hbase java client进行put数据,然后等待查看索引里面是否正确添加数据,如果添加失败,查看hbase的regionserver的log,并根据提示解决
(10)卸载一个协处理器  先禁用表,然后执行

alter 'c',METHOD => 'table_att_unset',NAME =>'coprocessor$1'


卸载,完成之后,激活表



异常:
(1)hbase的http-client组件与本例中用的最新的solr的http-client组件版本不一致导致,添加索引报错。
解决办法:
使用solr的
httpclient-4.3.1.jar
httpcore-4.3.jar
替换所有节点hbase/lib下的
低版本的httpclient组件包,即可!




有什么问题 可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园

  • 大小: 437.8 KB
1
1
分享到:
评论

相关推荐

    hbase+solr创建二级索引完整操作

    ### hbase+solr创建二级索引完整操作 #### 一、概述 本文档详细介绍了如何利用HBase和Solr创建二级索引的过程...通过以上步骤,您可以成功地在HBase与Solr之间创建二级索引,提升数据检索效率,实现更高效的查询体验。

    hbase+Coprocesser+solr实现二级索引

    为了解决这个问题,我们可以结合HBase的Coprocessor机制和Solr来构建二级索引,实现更高效的查询性能。 首先,我们来理解一下“二级索引”。在HBase中,一级索引是基于行键(Row Key)的,它是默认的、快速的访问...

    CDH使用Solr实现HBase二级索引.docx

    通过将 HBase 与 Solr 集成,可以实现 HBase 的二级索引,从而提高查询性能。 CDH(Cloudera Distribution of Hadoop)是一款基于 Hadoop 的大数据处理平台,提供了完整的数据处理解决方案。通过使用 CDH,我们可以...

    hbase-solr-coprocessor:通过solr实现hbase二级索引,主要通过hbase的coprocessor的Observer实现

    测试代码,目的是借助solr实现hbase二级索引,以使hbase支持高效的多条件查询。主要通过hbase的coprocessor的Observer实现,通过coprocessor在记录插入hbase时向solr中创建索引。 项目核心为...

    hbase二级索引

    然而,由于其原生不支持复杂的查询模式,尤其是多条件查询,因此二级索引成为了提高HBase查询效率的重要手段。二级索引在HBase中的应用,是为了弥补其一级索引(RowKey索引)的不足,它为非RowKey字段提供了快速访问...

    基于cdh5.7.5集群的solr(4.10.3-cdh5.7.5)+hbase(1.2.0-cdh5.7.5)构建二级索引方案

    通过引入Solr作为二级索引,我们可以利用Solr的全文搜索和多字段索引能力,实现对HBase数据的快速查询。 以下是构建二级索引的基本步骤: 1. **安装与配置**:在CDH集群中安装Solr和HBase,并进行相应的配置,确保...

    solr+hbase

    当 Solr 集成 HBase 时,Solr 可以作为 HBase 的索引层,提供快速的全文搜索和高级查询功能,而 HBase 则负责存储和管理大量结构化和半结构化数据。这种结合的优势包括: 1. **实时搜索**:通过 Solr 的实时索引,...

    HBase分布式二级索引通用方案研究.pdf

    作者提出了一个基于HBase与SolrCloud结合的方案,来实现高效的二级索引管理。 HBase数据库的二级索引方案,作为一个分布式系统中的研究课题,对那些希望通过索引加速查询和优化性能的开发者具有重要的参考价值。...

    HBase+官方文档-高清文字版

    但可以通过建立二级索引来改善查询性能,如使用Solr或者Elasticsearch进行集成。 8. **故障恢复和高可用性**:HBase利用Zookeeper实现故障检测和恢复,当Region Server失效时,Master Server能够快速重新分配其管理...

    hbase-solr-rest-client

    通过REST接口,它将Solr的全文检索能力和HBase的海量数据存储优势相结合,为企业级应用提供了一种高效、灵活的数据查询解决方案。在大数据时代,这样的工具对于优化数据处理流程、提升用户体验具有重要意义。

    HBase应用实践专场HBaseforSolr.pdf

    - **Phoenix**:Phoenix是在HBase上构建的一个SQL层,它可以在HBase之上建立二级索引,从而支持更复杂的查询需求。 2. **自建HBase索引**:除了引入外部的索引服务之外,还可以通过自建HBase索引来增强检索能力。...

    hbaseSecondaryIndex:hbase二级索引实现

    hbaseSecondaryIndex是一个hbase二级索引的实现,基于solr+hbase coprocessor框架为hbase提供索引表支持。 此工程可打包为一个hbase的插件,通用方便。 这篇文档的目的是为了向您介绍hbaseSecondaryIndex的基本使用...

    morphlines.confmorphline-hbase-mapper.xml

    总结来说,"morphlines.conf"和"morphline-hbase-mapper.xml"是HBase-Solr集成的关键配置文件,它们协同工作,帮助我们构建高效、可扩展的二级索引,从而提升对HBase中海量数据的查询性能。理解并熟练运用这两个配置...

    solr-8.6.3.tgz+hbase-2.3.3-bin.tar.gz

    用户可以通过修改`server/solr/configsets/_default/conf/solrconfig.xml`等配置文件来定制Solr的行为,如设置索引和查询参数。 在Apache Atlas 2.2.0的环境中,这两个组件的集成可能涉及到以下步骤: 1. 安装并...

    基于协处理器的HBase内存索引机制的研究.pdf

    3. 内存索引机制的实现:基于协处理器的HBase内存索引机制的实现,包括如何快速构建二级索引和持久化操作。 4. 性能优化:基于协处理器的HBase内存索引机制的性能优化,包括如何提高HBase的查询效率和可用性。 应用...

    hbase-1.1.2-bin.tar.gz

    它允许用户快速地搜索大量文本数据,提供高级的索引和查询功能,通常用于构建企业级的搜索解决方案。 在压缩包子文件的文件名称列表中,我们看到"solr-5.5.1",这表明该压缩包除了包含HBase之外,还包含Solr 5.5.1...

Global site tag (gtag.js) - Google Analytics