已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分布式全文检索系统SolrCloud简介前言本文简单描述SolrCloud的特性,基本结构和入门,基于Solr4.5版本。Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库。Solr是以Lucene为基础实现的文本检索应用服务。SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,或者可以说,SolrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式,这些方式部署的Solr不具有SolrCloud的特色功能。特色SolrCloud有几个特色功能:1. 集中式的配置信息使用ZK进行集中配置。启动时可以指定把Solr的相关配置文件上传Zookeeper,多机器共用。这些ZK中的配置不会再拿到本地缓存,Solr直接读取ZK中的配置信息。配置文件的变动,所有机器都可以感知到。另外,Solr的一些任务也是通过ZK作为媒介发布的。目的是为了容错。接收到任务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执行这个未完成的任务。2. 自动容错SolrCloud对索引分片,并对每个分片创建多个Replication。每个Replication都可以对外提供服务。一个Replication挂掉不会影响索引服务。更强大的是,它还能自动的在其它机器上帮你把失败机器上的索引Replication重建并投入使用。3. 近实时搜索立即推送式的replication(也支持慢推送)。可以在秒内检索到新加入索引。4. 查询时自动负载均衡SolrCloud索引的多个Replication可以分布在多台机器上,均衡查询压力。如果查询压力大,可以通过扩展机器,增加Replication来减缓。5. 自动分发的索引和索引分片发送文档到任何节点,它都会转发到正确节点。6. 事务日志事务日志确保更新无丢失,即使文档没有索引到磁盘。其它值得一提的功能有:1. 索引存储在HDFS上索引的大小通常在G和几十G,上百G的很少,这样的功能或许很难实用。但是,如果你有上亿数据来建索引的话,也是可以考虑一下的。我觉得这个功能最大的好处或许就是和下面这个“通过MR批量创建索引”联合实用。2. 通过MR批量创建索引有了这个功能,你还担心创建索引慢吗?3. 强大的RESTful API通常你能想到的管理功能,都可以通过此API方式调用。这样写一些维护和管理脚本就方便多了。4. 优秀的管理界面主要信息一目了然;可以清晰的以图形化方式看到SolrCloud的部署分布;当然还有不可或缺的Debug功能。概念 Collection:在SolrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需要使用的和Shard相关参数。 Config Set: Solr Core提供服务必须的一组配置文件。每个config set有一个名字。最小需要包括solrconfig.xml (SolrConfigXml)和schema.xml (SchemaXml),除此之外,依据这两个文件的配置内容,可能还需要包含其它文件。它存储在Zookeeper中。Config sets可以重新上传或者使用upconfig命令更新,使用Solr的启动参数bootstrap_confdir指定可以初始化或更新它。 Core: 也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard,Solr Core的提出是为了增加管理灵活性和共用资源。在SolrCloud中有个不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁盘上的配置目录中。 Leader: 赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader再分发它们到全部Shard的replicas。 Replica: Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名为“test”的collection以numShards=1创建,并且指定replicationFactor设置为2,这会产生2个replicas,也就是对应会有2个Core,每个在不同的机器或者Solr实例。一个会被命名为test_shard1_replica1,另一个命名为test_shard1_replica2。它们中的一个会被选举为Leader。 Shard: Collection的逻辑分片。每个Shard被化成一个或者多个replicas,通过选举确定哪个是Leader。 Zookeeper: Zookeeper提供分布式锁功能,对SolrCloud是必须的。它处理Leader选举。Solr可以以内嵌的Zookeeper运行,但是建议用独立的,并且最好有3个以上的主机。架构 索引(collection)的逻辑图 索引和Solr实体对照图 创建索引过程 检索过程 Shard Splitting入门安装配置前提,你需要先安装好Java,6.0+。 假设我们有5台机器要安装Solr。1. 安装外部zookeeperSolr默认是用内置的Zookeeper,为了方便管理和维护,建议使用外部Zookeeper。123456789101112wget /zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gztar -zxvf zookeeper-3.4.3.tar.gzJava的程序解压后就可以运行,不需要安装。修改或者创建配置文件$ZOOKEEPER_HOME/conf/zoo.cfg,内容如下:# 注意修改为你的真实路径dataDir=/home/hadoop/zookeeper-3.4.3/dataclientPort=2181# 编号从1开始,solr1-3每个是一台主机,共3个server.1=solr1:2888:3888server.2=solr2:2888:3888server.3=solr3:2888:3888123456789101112wget /zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gztar -zxvf zookeeper-3.4.3.tar.gzJava的程序解压后就可以运行,不需要安装。修改或者创建配置文件$ZOOKEEPER_HOME/conf/zoo.cfg,内容如下:# 注意修改为你的真实路径dataDir=/home/hadoop/zookeeper-3.4.3/dataclientPort=2181# 编号从1开始,solr1-3每个是一台主机,共3个server.1=solr1:2888:3888server.2=solr2:2888:3888server.3=solr3:2888:3888在3台机器上都同样安装。另外,还需要在$dataDir中配置myid,zookeeper是以此文件确定本机身份。345# 注意每台机器上的不一样echo 1 myid #在solr1上echo 2 myid #在solr2上echo 3 myid #在solr3上启动, 需要在3台机器上分别启动1234$ZOOKEEPER_HOME/bin/zkServer.sh start# 查看状态,确认启动成功$ZOOKEEPER_HOME/bin/zkServer.sh status2. Solr安装下载在5台机上做同样操作12345678910wget /lucene/solr/4.5.0/solr-4.5.0.tgz tar -xzf solr-4.5.0.tgzcd solr-4.5.0cp -r example node1cdo node1# 第一条solr机器java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DnumShards=2 -DzkHost=solr1:2181,solr2:2181,solr3:2181 -jar start.jar# 其它solr机器java -DzkHost=solr1:2181,solr2:2181,solr3:2181 -jar start.jar启动成功后,你可以通过浏览器8983看到solr的Web页面。3. 索引123cd $SOLR_HOME/node1/exampledocsjava -Durl=http:/solr1:8983/solr/collection1/update -jar post.jar ipod_video.xml4. 检索你可以在web界面选定一个Core,然后查询。solr有查询语法文档。5. 如果要想把数据写到HDFS在$SOLR_HOME/node1/solr/collection1/conf/solrconfig.xml 增加1234567891011121314hdfs:/mycluster/solrtrue1true16384truetruetrue16192$user.home/local/hadoop/etc/hadoop重新启动12java -Dsolr.directoryFactory=HdfsDirectoryFactory -Dsolr.lock.type=hdfs -Dsolr.data.dir=hdfs:/mycluster/solr -Dsolr.updatelog=hdfs:/mycluster/solrlog -jar start.jar可以增加如下参数设定直接内存大小,优化Hdfs读写速度。12-XX:MaxDirectMemorySize=1g其它 NRT近实时搜索Solr的建索引数据是要在提交时写入磁盘的,这是硬提交,确保即便是停电也不会丢失数据;为了提供更实时的检索能力,Solr设定了一种软提交方式。软提交(soft commit):仅把数据提交到内存,index可见,此时没有写入到磁盘索引文件中。一个通常的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年璧山县辅警招聘考试题库含答案详解ab卷
- 2024年塔城辅警招聘考试真题附答案详解(模拟题)
- 2024年六安辅警协警招聘考试备考题库含答案详解(轻巧夺冠)
- 2024年屏东县辅警协警招聘考试真题含答案详解ab卷
- 2024年克州辅警协警招聘考试备考题库及完整答案详解
- 2024年云阳县辅警协警招聘考试备考题库及答案详解(必刷)
- 2023年珠海辅警协警招聘考试备考题库含答案详解(模拟题)
- 2024年上饶辅警协警招聘考试真题含答案详解(综合题)
- 2023年酉阳土家族苗族自治县辅警协警招聘考试真题及答案详解1套
- 2024年内江辅警协警招聘考试备考题库带答案详解
- 光伏电站安全培训课件
- 2025年消防日消防月主题知识培训
- 2022年长春财经学院公共课《思想道德基础与法律修养》科目期末试卷B
- 生物育种方法
- 建筑企业法人a证考试及答案
- 2025年秋统编版小学语文四年级上册第六单元综合测试卷及参考答案
- 《国有企业管理人员处分条例》测试题(名校卷)附答案详解
- 医院进修人员培训报告
- 冬季燃气管道施工安全方案
- 化工仪表维保知识培训课件
- 2025-2030中国宠物经济市场现状分析与前景预测报告
评论
0/150
提交评论