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

[经验分享] solr hbase 大数据

[复制链接]

尚未签到

发表于 2016-12-15 09:21:33 | 显示全部楼层 |阅读模式
  Solr结合hbase处理大数据的方法
  在solr 4.0 以后,一个重要特性是加入了分布式和实时性搜索。Solr的分布式部署方式叫做solr cloud。
  1、配置文件的管理
  其用于控制如何对一条记录的分词和索引方式的配置文件index.xml、控制一个solr core(独立的能够提供搜索和索引的其本单位)的有关参数的配置文件solrconfig.xml、控制从多种数据源(常用的如数据库数据源)抽取数据的模板的配置文件data-config.xml等配置文件上传于一个分布式的内存存储系统zookeeper(它还可以协调分布式系统的状态等)。
  2、使用方式
  根据一条数据具体交给哪个shard建立索引现可将使用方式分为以下几种,在solr 源代码中由以下几个内决定。
  
DSC0000.bmp
 
  2.1、PlainIdRouter
  此方式是在第一台solr节点启动的时候,需要指定一个将整个集群分成多少个逻辑部分(shard)的DnumShards,一旦指定,就现在的solr cloud版本来说将不可改变,不能扩展。每台solr节点在启动时,都需要为其指定zookeeper 集群的地址,以便于它去那里取得solr core启动时需要的配置文件,注意一个solr节点(即一个独立的tomcat项目)可以同时包含几个solr core,分属于不同的或者相同的solr shard。当所有的shard 都有了相应的多个或者一个core(具体多少个确定于你的配置Replication Factor),solr cloud便可以对外提供搜索和对数据建立索引的能力和接口了。它提供的接口可以有很多种,如客户端 solrj ,http协议、Python。此种方式的好处是,对数据建立索引的客户端不需要关心数据交给哪个shard处理,集群自动分发数据到一个shard(根据主键的hash值取模hash_function(doc.getKey()) % N)。
  2.2、CompoliteIdRouter
  此方式与2.1的相同,都要在定一台solr节点启动时,指定DnumShards,内部也需要对主键取hash值。但是现在如果有这么个需求,如果你有如下4条数据:
  typeid
  a    1
  a    2
  b    3
  b    4
  你希望type为a的数据都位于同一个shard里面,type为b的数据位于另一个shard里面。就需要利用CompoliteIdRouter,其使用方式是在传递给schema.xml里面配置的主健字段的值如下,用!将type和id连接起来,如a!1、a!2、b!3、b!4。
  2.3、ImplicitDocRouter
  此方式的最大特点是不需要在第一个结点启动时指定DnumShards,也不需要hash函数。而且如果你控制得好,还可以动态的添加shard,可以解决solr cloud不能动态扩展的问题。比如说你的数据是每天在新产生数据,你可以每天产生一个shard来容纳当天的数据。稍微麻烦点的是,在建立索引时你需要明确指定此数据放入哪个shard,通过在你的doc 中添加一个字段shard来指明。但他不只是带来动态扩展的好处,在搜索的时候如果你清楚你的数据是位于哪些shard里面的,你就可在搜索的时候指定参数shards=shard1,shard2…这样solr集群就只会去搜索这几个shard,如果你的集群的shard数很大,能极大的提高搜索速度。
  3、搜索速度优化及jvm内存调优
  为了减少搜索速度,减少索引文件大小,可选择只存储部分字段,如主建字段等。将每条数据存放在hbase数据库中,在展示结果的时候,通过全文搜索得出的主健值 ,通过hbase的row-key得到每条记录。而这正是hbase的长处。
  Jvm 内在溢出问题可参考这两篇文章
  http://blog.csdn.net/aisoo/article/details/8263841
  http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
  另还有一个solrconfig.xml里面的配置对于大数据处理时内存溢出相当关键,具体参数请看文件里面的说明。

运维网声明 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-314543-1-1.html 上篇帖子: solr 自动补全 下篇帖子: solr与Lucene的差别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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