设为首页 收藏本站
查看: 1258|回复: 0

[经验分享] Solr与HBase架构设计

[复制链接]

尚未签到

发表于 2015-7-18 12:45:19 | 显示全部楼层 |阅读模式
摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度。
前提:      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.iyunv.com/wgp13x/p/3742653.html http://www.iyunv.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.iyunv.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取出数据,最后返回给用户结果。

文章来源:http://www.iyunv.com/wgp13x/p/a8bb8ccd469c96917652201007ad3c50.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87995-1-1.html 上篇帖子: 利用SOLR搭建企业搜索平台 之——MultiCore 下篇帖子: solr 的edismax与dismax比较与分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表