分布式全文检索系统SolrCloud简介

上传人:hs****ma 文档编号:498990413 上传时间:2023-01-05 格式:DOCX 页数:12 大小:260.01KB
返回 下载 相关 举报
分布式全文检索系统SolrCloud简介_第1页
第1页 / 共12页
分布式全文检索系统SolrCloud简介_第2页
第2页 / 共12页
分布式全文检索系统SolrCloud简介_第3页
第3页 / 共12页
分布式全文检索系统SolrCloud简介_第4页
第4页 / 共12页
分布式全文检索系统SolrCloud简介_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《分布式全文检索系统SolrCloud简介》由会员分享,可在线阅读,更多相关《分布式全文检索系统SolrCloud简介(12页珍藏版)》请在金锄头文库上搜索。

1、分布式全文检索系统 SolrCloud 简介前言本文简单描述SoIrCloud的特性,基本结构和入门,基于Solr4.5版本。Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库Solr是以Lucene为基 础实现的文本检索应用服务。SoIrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方 案,或者可以说,SoIrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机 方式,多机Master-Slaver方式,这些方式部署的Solr不具有SolrCloud的特色功能。特色SolrCloud 有几个特色功能:1.

2、集中式的配置信息使用ZK进行集中配置。启动时可以指定把Solr的相关配置文件上传Zookeeper, 多机器共用。这些ZK中的配置不会再拿到本地缓存,Solr直接读取ZK中的配置信 息。配置文件的变动,所有机器都可以感知到。另外,Solr的一些任务也是通过ZK作为媒介发布的。目的是为了容错。接收到任 务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执 行这个未完成的任务。2. 自动容错SolrCloud对索引分片,并对每个分片创建多个Replication。每个Replication都可 以对外提供服务。一个Replication挂掉不会影响索引服务。更强大的是,它还能自

3、动的在其它机器上帮你把失败机器上的索引Replication重建 并投入使用。3. 近实时搜索立即推送式的replication (也支持慢推送)。可以在秒内检索到新加入索引。4. 查询时自动负载均衡SolrCloud索引的多个Replication可以分布在多台机器上,均衡查询压力。如果查 询压力大,可以通过扩展机器,增加Replication来减缓。5. 自动分发的索引和索引分片发送文档到任何节点,它都会转发到正确节点。6. 事务日志事务日志确保更新无丢失,即使文档没有索引到磁盘。其它值得一提的功能有:1. 索引存储在HDFS上索引的大小通常在G和几十G,上百G的很少,这样的功能或许很难实

4、用。但是, 如果你有上亿数据来建索引的话,也是可以考虑一下的。我觉得这个功能最大的好 处或许就是和下面这个“通过MR批量创建索引”联合实用。2. 通过 MR 批量创建索引有了这个功能,你还担心创建索引慢吗?3. 强大的 RESTful API通常你能想到的管理功能,都可以通过此API方式调用。这样写一些维护和管理脚 本就方便多了。4. 优秀的管理界面主要信息一目了然;可以清晰的以图形化方式看到SoIrCloud的部署分布;当然还 有不可或缺的 Debug 功能。概念 Collection:在SoIrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个 或多个Shard,它们使用相同的Co

5、nfig Set。如果Shard数超过一个,它就是分布 式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需 要使用的和Shard相关参数。 Config Set: Solr Core提供服务必须的一组配置文件。每个con fig set有一个名字。 最小需要包括 solrconfig.xml (SolrConfigXml)和 schema.xml (SchemaXml),除此 之外,依据这两个文件的配置内容,可能还需要包含其它文件。它存储在 Zookeeper 中。Config sets可以重新上传或者使用upconfig命令更新,使用Solr的启动参

6、数 bootstrap_co nfdir指定可以初始化或更新它。 Core:也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core 可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard, Solr Core的提出是为了增加管理灵活性和共用资源。在SoIrCloud中有个 不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁 盘上的配置目录中。 Leader:赢得选举的 Shard replicas。每个 Shard 有多个 Replicas,这几个 Replicas 需

7、要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个 Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此 Shard对应的leader,leader再分发它们到全部Shard的replicas。 Replica: Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名 为 “tes的,collection 以 numShards=1 创建,并且指定 replicationFactor 设置为 2, 这会产生2个replicas,也就是对应会有2个Core,每个在不同的机器或者Solr 实例。一个会被命名为

8、 test_shard1_replica1,另一个命名为 test_shard1eplica2。 它们中的一个会被选举为Leader。 Shard: Collection的逻辑分片。每个Shard被化成一个或者多个replicas,通过选 举确定哪个是 Leader。 Zookeeper: Zookeeper 提供分布式锁功能,对 SolrCloud 是必须的。它处理 Leader 选举。Solr可以以内嵌的Zookeeper运行,但是建议用独立的,并且最好有3个以 上的主机。架构 索引(collection )的逻辑图索引和Solr实体对照图Soli| Replica I| Replica

9、ILeader| ReplicaLeaderCollectionSoIrCloudShardlShard2CoreCoreCore创建索引过程Leader四四Leadei旅描还:1.用户可旦把文档提交给任一Replg如果它Leader它会耙请求转交蛤和自己同Shard的Lead前3. LeackrtB文档踣由结本Sh討d的每Replica三如里文档基于踣由规则井不属于本Shardleader把它转交绐对应haM 四.对应Leader会耙文档路由给本Shard的毎个Replica用户CoreCore丄 Replica IJ U I Sharii2SoIrCloudCoreCore检索过程说明:1

10、.用户的一个查询,可以发送到含有该Collection的任意机器Solr内; 2.1ftReplfca会基于查询索引的方式,启动好布是查询,基于索引的Sh; 每个子查询走位到对应Shard的任意一个的Replica3 每个子查询返回查询结果4最初的Replica合井子查询,井把最终结果返回给用户Shard Splitting过g述:a-在一个Shard的文档达到阀值,或者接收到用户的API命令,可以启动行2 b.M,旧的Shard仍然提供服务,IHShard的文档,再次提取井按路由规! 同时,新加入的文档:1- 2.用户可以把文档提交蛤任一Replica转交蛤Leader3. Leader耙文

11、档路由绐旧Shard的每个Replica ,各自做索引三.五.同时会把文档路由给新Shardfi myid#在 solrl 上 echo 2 myid#在solr2 上 echo 3 myid #在 solr3 上启动, 需要在 3 台机器上分别启动$ZOOKEEPER_HOME/bin/zkServer.sh start # 查看状态,确认启动成功 $ZOOKEEPER_HOME/bin/zkServer.sh status2. Solr 安装下载在 5 台机上做同样操作wget http:/apache.mirrors.pair.eom/lucene/solr/4.5.0/solr-4.5

12、.0.tgz tar -xzf solr-4.5.0.tgz cd solr-4.5.0 cp -r example nodel cdo nodel # 第一条 solr 机器 java-Dbootstrap_confdi =./solr/collection1/conf - )collection.configName=myconf -DnumShards =2 -DzkHost=solr1:2181 ,solr2:2181 ,solr3:2181 -jar start.jar # 其它 solr 机器 java -DzkHost=solr1:2181 ,solr2:2181 ,solr3:

13、2181 -jar start.jar启动成功后,你可以通过浏览器8983看到solr的Web页面。3. 索引cd $SOLR_HOME/node1/exampledocs java - Du =http:/solr1:8983/solr/collection1/update -jar post.jar ipod_video.xml4. 检索你可以在web界面选定一个Core,然后查询。solr有查询语法文档。5. 如果要想把数据写到 HDFS在$SOLR_HOME/node1/solr/collection 1/conf/solrconfig.xml 增加 hdfs:/mycluster/solr true/b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号