Solr SolrCloud相关概念

Solr支持服务器的分布式集群部署,即SolrCloud。在SolrCloud中,一个索引可以被分布到不同的服务器,即不同的node,所有的这些node组成一个collection,并且充分考虑了高可靠性和容错的设计。

SolrCloud使用zookeeper来管理这些服务器,被搜索的文件可以放在任何一个服务器,ZooKeeper会自动管理它们。

一个collection可以把数据(索引文件)拆分成多份,放进几个不同的shard中,一个shard的数据可以有多个备份(replica)。一个shard的多个replica中会有一个leader,由选举程序推选出来。一个replica相当于一个core。

这个功能的主要特性是:

  • 整个集群的配置信息可以集中配置
  • 对于搜索自动负载均衡、出现故障时可以自动切换
  • 集成了ZooKeeper,负责集群的协调和配置

如上图,一个collection(gettingstarted)被拆分到两个不同的shard中,而每个shard都有两个服务器(node)提供负载均衡和遇错切换的服务。这个分布式的结构是由ZooKeeper负责管理的。那些node中,实心圆圈的就是leader。

相关概念:

  • HA:High Availability
  • Node:一个服务器、或虚拟服务器节点,每个node对应一个port向外提供服务。对应于一个JVM。
  • Collection:一个SolrCloud实例,负责对一批数据建立一个索引,并提供基于这个索引的搜索服务
  • Shard:一个SolrCloud中的索引可以被拆分存放到多个shard中
  • Replica:一个shard中的数据,可以有多个副本,就是Replica,其中有一个被推选出来的leader
  • Core:负责处理一个Replica,跟一个node对应
  • Cluster:由ZooKeeper管理的多个Node的集合,对solr的请求可以发送给一个cluster

Shard的数量决定了索引是如果被拆分的,所以,当一个cluster初始化完成之后,shard的数量是不能改的。

创建一个新的core并加入到一个Collection和shard中:

curl ‘http://localhost:8983/solr/admin/cores? action=CREATE&name=mycore&collection=my_collection&shard=shard2‘

Shard的迁移:

如果原来只有一个机器、或只有少量机器,可以先规划好shard的数量并启动,然后等有新的机器之后,在新的机器中为某个shard启动一个新的replica,然后把原来的shard移除,这样ZooKeeper就会把新的replica提升为这个shard的leader了。

Leader和Replica:

如果Solr启动的时候,参数numShards=2,那么前两个启动的node就是leader,分别服务于这两个shard,第三个和之后启动的node就是replica,他们会依次按照那两个leader加入cluster的顺序分配给那两个leader(使用round-robin的方式)。也可以在启动node的时候使用shardId参数直接把这个node分配给某个shard。当solr重启的时候,所有的node还是归属到重启之前所归属的shard,同个shard中先启动的node就是leader(first
come first served)。

当一个leader无法工作的时候,这个shard中的某一个replica会被自动推选为leader。

在Solr Admin UI界面中,Cloud菜单里面可以看到哪个是Leader(实心圆圈者)。

新的文档可以被送往任何一个node,SolrCloud会自动把它们分配到合适的shard中:

  • 如果文档被送到一个replica中,那么这个replica会把这些文档发送给这个shard的leader
  • 当一个leader接收到文档的时候,SolrCloud会决定这些文档应该分配到哪个shard,然后把它们发生给这个shard的leader、建立索引、并把索引发送给这个shard中所有的replica

添加shard:

如果需要加多一个shard,可以使用Collections API,创建两个新的shard,再把现有shard中的索引分配到这两个新Shard中。旧的shard需要手动删掉。

版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。

时间: 2024-08-03 02:15:43

Solr SolrCloud相关概念的相关文章

Solr/SolrCloud -error

状态 2014-08-20 10:46:22,356 INFO [coreZkRegister-1-thread-1] [org.apache.solr.cloud.ShardLeaderElectionContext] - Was waiting for replicas to come up, but they are taking too long - assuming they won't come back till later 2014-08-20 10:46:22,357 INFO

solr安装-tomcat+solrCloud构建稳健solr集群

solr安装-tomcat+solrCloud构建稳健solr集群 2014-05-29 12:17 11985人阅读 评论(2) 收藏 举报  分类: solr(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建:使用外部web容器tomcat来搭建.对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用tomcat来搭建solrCloud. 废话不多说,开始我们的工作! 1.搭

SolrCloud:根据Solr Wiki的译文

本文是作者根据Apache Solr Document的译文,翻译不正确或者理解不到位的地方欢迎大家指正!谢谢! Nodes, Cores, Cluster and Leaders Nodes and Cores 在SolrCloud中,一个node就是一个JVM运行Solr的实例,通常称之为server.每个Solrcore都可以被当作一个node.任何一个node都可以包含一个Solr的实例和多样化的数据在其中. Solr core中存储了基于一篇文章中发现的文本内容和字段的索引.一个单独的

Solr集群(即SolrCloud)搭建与使用

1.什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求.SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心.它有几个特色功能: 1)集中式的配置信息. 2)自动容错. 3

SolrCloud

SolrCloud的搭建 本次安装是单台虚拟机安装,所以采用伪集群的方式进行安装,如果是真正的生产环境,将伪集群的ip改下就可以了,步骤是一样的. SolrCloud结构图如下: 环境准备: CentOS-6.4-i386-bin-DVD1.iso jdk-7u72-linux-i586.tar.gz apache-tomcat-7.0.47.tar.gz zookeeper-3.4.6.tar.gz solr-4.10.3.tgz 1.1. 环境安装 概念了解:一.Solr的相关概念了解 1.

SolrCloud 5.0 路由、Collection创建与数据迁移

SolrCloud的设计是为了提供高可用.容错,在分布式环境中进行内容索引和查询请求. SolrCloud 5.0,对自带的SolrCloud的启动脚本进行了改进,启动SolrCloud变的异常简单,执行 $ bin/solr –e cloud 根据提示输入一些参数,即可启动完成SolrCloud,部署启动完成,如下图 SolrCloud相关概念 SolrCloud中有四个关键名词:core.collection.shard.node.         core:在Solr单机环境中,core本

SolrCloud今日大纲

SolrCloud今日大纲(了解) ●    分布式集群系统基本概念 ●    SolrCloud入门 ●    SolrCloud搭建 ***************************************************************************************************** 1.    分布式集群系统基本概念介绍 1.1    单台服务器存在的问题 URL: http://localhost:8080/xxx localhost其

SolrCloud部署和使用手册

SolrCloud部署和使用手册             文档修订摘要   日期 版本 描述 著者 审阅者 2013-12-23 0.1 将txt简易模板的文档提取到word模板. 张乐雷 2013-12-23 0.2 创建collection的url中制定了createNodeSet 张乐雷 2013-12-29 0.3 1.  solr.war直接使用solr发布的文件,不在进行修改. 2.  日志jar和配置放置到tomcat/lib目录 3.  新增维护document的命令,提供了不同

solrCloud 4.9 分布式集群部署及注意事项

环境搭建 一.zookeeper 参考:http://blog.chinaunix.net/uid-25135004-id-4214399.html 现有4台机器 10.14.2.201 10.14.2.202 10.14.2.203 10.14.2.204 安装zookeeper集群 在所有机器上进行 1.下载安装包解压 tar xvf zookeeper-3.4.5.tar.gz -C /export/ cd /export/ ln -s zookeeper-3.4.5 zookeeper