SolrCloud实战(二):索引集collection *** 作

SolrCloud实战(二):索引集collection *** 作,第1张

本篇文章用来介绍下在SolrCloud *** 作索引集collection *** 作API。

先简单介绍下索引集概念

如图所示:

(1)物理结构

      三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。

(2)逻辑结构

      索引集合包括两个Shard(shard1、shard2),每个shard由三个core组成,其中一个Leader两个Replication。

      Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。

      并且用户发起索引请求分别从三个分片上获取,解决高并发问题。

      每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。

下面介绍下SolrCloud下的索引集相关 *** 作API。

创建Collection前需要先将配置上传到zookeeper的/solr/configs下。

这里_default是默认的配置文件,SolrCloud搭建启动后默认上传到zookeeper中。

book就是我定义上传的配置文件。下面开始介绍如何上传配置文件。

(1)创建配置文件

从solr的默认配置文件拷贝一份出来

(2)修改配置book/managed-schema

在根节点下面添加字段

(2)修改配置book/schema.xml

这里修改下其中的软硬提交方式。

这里先提个概念“硬提交是关于持久化的,软提交是关于可见性的”。后续再研究下软提交、硬提交的作用。

(3)上传配置到zookeeper

使用solr的zkcli.sh脚本执行上传配置

-zkhost --- zookeeper地址,由于SolrCloud部署时zookeeper地址带有/solr,这里也得加上。

-cmd upconfig --- 上传命令

-confdir --- 本地配置文件目录

-confname --- 上传到zookeeper中的配置名

上传后zookeeper显示如下配置:

向任一一台solr访问下如下http地址:

name:索引集名

numShards:分片数

replicationFactor:副本数

maxShardsPerNode:每台主机最大分片数

collection.configName:索引配置文件名

这里numShards * replicationFactor <= maxShardsPerNode*solr节点数。

访问http地址结果如下:

(1)此时访问solr,就能看到Collection结构、分片、leader和Replication副本,以及副本core所在节点。

(2)在节点所在主机上

SOLR_HOME所在目录下有core目录

SOLR_DATA_HOME目录下有core对应的索引文件目录

(3)查看任一core的自动生成的core.properties,显示core对应的相关信息。

比如修改了managed-schema,那么同样使用zkcli.sh上传,命令如下:

访问结果如下图所示,所有节点都刷新了。

删除collection,只要访问任意一台solr,http地址如下:

这里简单介绍下collection的基本 *** 作:创建、删除、重载配置。后续继续学习下collection其他API功能。

现在我们来剖析下这样一个简单的集群构建的基本流程:先从第一台solr服务器说起:1) 它首先启动一个嵌入式的Zookeeper服务器,作为集群状态信息的管理者,2) 将自己这个节点注册到/node_states/目录下3) 同时将自己注册到/live_nodes/目录下4)创建/overseer_elect/leader,为后续Overseer节点的选举做准备,新建一个Overseer,5) 更新/clusterstate.json目录下json格式的集群状态信息6) 本机从Zookeeper中更新集群状态信息,维持与Zookeeper上的集群信息一致7)上传本地配置文件到Zookeeper中,供集群中其他solr节点使用8) 启动本地的Solr服务器,9) Solr启动完成后,Overseer会得知shard中有第一个节点进来,更新shard状态信息,并将本机所在节点设置为shard1的leader节点,并向整个集群发布最新的集群状态信息。10)本机从Zookeeper中再次更新集群状态信息,第一台solr服务器启动完毕。然后来看第二台solr服务器的启动过程:1) 本机连接到集群所在的Zookeeper,2) 将自己这个节点注册到/node_states/目录下3) 同时将自己注册到/live_nodes/目录下4) 本机从Zookeeper中更新集群状态信息,维持与Zookeeper上的集群信息一致5) 从集群中保存的配置文件加载Solr所需要的配置信息6) 启动本地solr服务器,7) solr启动完成后,将本节点注册为集群中的shard,并将本机设置为shard2的Leader节点,8) 本机从Zookeeper中再次更新集群状态信息,第二台solr服务器启动完毕。示例2,包含2个shard的集群,每个shard中有replica节点


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11355048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存