Solr与HBase架构设计

摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度。

前提:    
 Solr、SolrCloud提供了一整套的数据检索方案,HBase提供了完善的大数据存储机制。
需求:  
   1、对于添加到HBase中的结构化数据,能够检索出来。

2、数据量较大,达到10亿,100亿数据量。

3、检索的实时性要求较高,秒级更新。

说明:
     以下是使用Solr和HBase共同搭建的系统架构。


1.1  一次性创建索引


l、  删除全索引

效率很高,可以关闭Solr后,直接删除Data文件。

2、 重新创建全索引

拉取HBase中全数据,分批次创建索引。

1.2  增量创建索引


1、触发器发送数据到Solr建索引。

配置并使用HBase触发器功能,配置实现如下:

alter
‘angelHbase‘, METHOD  =>  ‘table_att‘, ‘coprocessor‘ =>
‘/home/hbase/hbase-0.94.18-security/lib/solrHbase.jar|solrHbase.test.SorlIndexCoprocessorObserver|1073741823|‘

alter
‘angelHbase‘, METHOD =>‘table_att_unset‘, NAME =>
‘coprocessor$1‘

然后编写SorlIndexCoprocessorObserver
extendsBaseRegionObserver,重写postPut方法。在postPut方法中,需要正确地读出写入HBase的数据结构及数据,然后转化为相应的SolrInputDocument,再使用ConcurrentUpdateSolrServer方式向Solr服务器发送SolrInputDocument数据,具体使用方法如之前博文介绍Solr的使用方法、性能对比所示。

注意:需要把Solr相关的jar包放入lib下,并且删除版本不一致的jar(有很多)。更新jar后要重启HBase才能生效。

具体性能如之前博文介绍Solr的使用方法、性能对比所示。http://www.cnblogs.com/wgp13x/p/3742653.html http://www.cnblogs.com/wgp13x/p/3748764.html

2、触发器发送数据到RabbitMQ,Solr端从RabbitMQ获取数据建索引。

embedded方式官方不推荐使用。而使用ConcurrentUpdateSolrServer性能与上种方式并无区别。

3、 建议:

在HBase中只存储1列,存储值为PB或Json串。(存在由bean到SolrInputDocument转化的类及annotation,以及各自的压缩算法)

或者:插入HBase的数据均以Bytes.toBytes(String)类型存储,如long型数值2存储为Bytes.toBytes(""+2)。否则在postPut()中需要知道每列的具体类型才能生成正确的SolrInputDocument,因为SolrInputDocument中需要的是String类型的数据。

具体的postPut方法代码,如有需要可以留言或直接跟本人联系。http://www.cnblogs.com/wgp13x/

1.3  HBase与Solr系统架构设计


使用HBase搭建结构数据存储云,用来存储海量数据;使用SolrCloud集群用来搭建搜索引擎,将要查找的结构化数据的ID查找出来,只配置它存储ID。

1、具体流程:

wd代表用户write
data写数据,从用户提交写数据请求wd1开始,经历wd2,写入MySQL数据库,或写入结构数据存储云中,wd3,提交到Solr集群中,从而依据业务需求创建索引。

rd代表用户read
data读数据,从用户提交读数据请求rd1开始,经历rd2,直接读取MySQL中数据,或向Solr集群请求搜索服务,rd3,向Solr集群请求得到的搜索结果为ID,再向结构数据存储云中通过ID取出数据,最后返回给用户结果。

来自为知笔记(Wiz)

Solr与HBase架构设计,布布扣,bubuko.com

时间: 2024-10-18 10:55:33

Solr与HBase架构设计的相关文章

HBase架构设计

一.Client 包含访问HBase的接口并维护cache来加快对HBase的访问. 二.Zookeeper 1.保证任何时候,集群中只有一个master. 2.存储所有Region的寻址入口. 3.实时监控Region server的上线和下线信息,并实时通知Master. 4.存储HBase的schema和table元数据. 三.Master 1.为Region server分配region. 2.负责Region server的负载均衡. 3.发现失效的Region server并重新分配

【大数据技术】HBase与Solr系统架构设计

如何在保证存储量的情况下,又能保证数据的检索速度. HBase提供了完善的海量数据存储机制,Solr.SolrCloud提供了一整套的数据检索方案. 使用HBase搭建结构数据存储云,用来存储海量数据:使用SolrCloud集群用来搭建搜索引擎,将要查找的结构化数据的ID查找出来,只配置它存储ID. 1.用户write data写数据(wd) 从用户提交写数据请求wd1开始:经历wd2写入MySQL数据库或写入结构数据存储云中:wd3提交到Solr集群中,从而依据业务需求创建索引. 2.用户re

java架构师课程、性能调优、高并发、tomcat负载均衡、大型电商项目实战、高可用、高可扩展、数据库架构设计、Solr集群与应用、分布式实战、主从复制、高可用集群、大数据

15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  clo

【转】Flume(NG)架构设计要点及配置实践

Flume(NG)架构设计要点及配置实践 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本.经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡. 架构设计要点 Flume的架构主要有一下几个核心概念: Event:一个数据单元

大型分布式网站架构设计与实践

大型分布式网站架构设计与实践(一线工作经验总结,囊括大型分布式网站所需技术的全貌.架构设计的核心原理与典型案例.常见问题及解决方案,有细节.接地气/京东:大型分布式网站所需技术的全貌.架构设计的核心原理与典型案例.常见问题及解决方案) 陈康贤 著   ISBN 978-7-121-23885-7 2014年9月出版 定价:79.00元 460页 16开 编辑推荐 --作者一直奋战在阿里巴巴及淘宝网一线,书中所讲是其亲身经验的总结,显得更加实战和珍贵. --全面介绍大型分布式网站架构所涉及的技术细

《大型分布式网站架构设计与实践》

读后感 逐字逐句看完<大型分布式网站架构设计与实践>第2章,意犹未尽!如标题所言,这是一本“真材实料的分布式资料”,它与我看过的分布式书籍(如<大型网站系统与Java中间件实践>)不同,本书重技术兼并理论,给了新人入手的方向. 我最最感动的是书中介绍了很多分布式的“干货”:分布式缓存可以用memcache.数据库水平/垂直拆分技术.分布式存储可以HBase/Redis等.消息通道可以用ActiveMQ.搜索引擎Lucene/Solr等.当然每一种技术都不是一本书能说完的,作者至少给

大数据时代数据库-云HBase架构&amp;生态&amp;实践

摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了ApsaraDB HBase及生态,最后分享了大数据数据库的实际案例. 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了A

Linux系统运维与架构设计

一 本章概览 介绍Linux系统运维与架构设计的方方面面 二 Linux基础入门 认识计算机核心硬件和服务器 Linux发展历史.系统组成.应用领域以及发行版 搭建运维环境:VMWareWorkStation.SecureCRT的使用 Linux系统的基本使用 Shell入门以及命令概述 三 Linux系统管理 文件目录管理 用户管理 权限管理 VIM编辑器的使用 文档压缩打包 程序包管理 网络管理 文件系统管理 内存管理 系统管理(监控.环境变量) 安全管理(selinux,iptables)

深入HBase架构解析(一)[转]

前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然而如果翻译就需要各种咬文嚼字,太麻烦,因而本文大部分使用了自己的语言,并且加入了其他资源的参考理解以及本人自己读源码时对其的理解,属于半翻译.半原创吧. HBase架构组成 HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由一下类型节点组成:HMaster节点.HR