隐藏

已验证-solr8.3集群SolrCloud(solr+zookeeper)windows搭建

发布:2022/6/19 11:39:59作者:管理员 来源:本站 浏览次数:1038

SolrCloud是什么

参考 solrCloud官网介绍 http://lucene.apache.org/solr/guide/6_6/solrcloud.html

Apache Solr 可以设置solr集群,并且有容错性和高可用性能力,这被称为SolrCloud,它的功能是提供分布式索引和搜索,支持以下功能:

  • 集中式的中央配置

  • 自动负载平衡和故障切换

  • ZooKeeper集成,用于集群协调和配置。


SolrCloud是灵活的分布式搜索和索引,没有主节点分配节点,分片和副本。相反,Solr使用ZooKeeper来管理这些位置,具体取决于配置文件和模式。查询和更新可以发送到任何服务器。Solr将使用ZooKeeper数据库中的信息来确定哪些服务器需要处理请求。

SolrCloud结构图

 

因为集中配置、协调,所以需要zookeeper。

zookeeper的集群安装 

安装3个zk服务器做集群 localhost:2181,localhost:2182,localhost:2183。

安装zk,参考 http://www.cnblogs.com/yangzhenlong/p/8270835.html

安装好后启动3个zk

solrCloud安装

下载solr8.3 http://archive.apache.org/dist/lucene/solr/8.3.0/

下载后解压,命名为solr-1,进入 \solr-1\bin 目录

需要做3个操作

1.配置zookeeper服务

修改solr.in.cmd

REM set ZK_HOST= 替换为(这里是zookeeper服务地址:端口,中间用逗号隔开)

set ZK_HOST=localhost:2181,localhost:2182,localhost:2183

REM set ZK_CLIENT_TIMEOUT=15000替换为

set ZK_CLIENT_TIMEOUT=15000

2.配置solr端口

修改solr.cmd,编辑文件,搜索 SOLR_PORT=8983

将端口改为8981

 

编辑好以后,将solr-1文件夹复制3分,分别命名为 solr-2,solr-3,solr-4

然后分别修改对应的solr.cmd文件,设置端口为 8982,8983,,8984

 3.上传solr的core配置到zookeeper

因为需要让zk统一治理solr,所以需要让zk管理solr的配置信息。

进入\solr-1\server\scripts\cloud-scripts 目录,看到有zk的客户端指令文件

现在需要将\solr-1\server\solr\configsets\basic_configs\conf 里的所有配置都上传到zk服务上,执行命令:

zkcli.bat -zkhost zk1:port,zk2:port... -cmd upconfig -confdir solr的conf目录 -confname solrconf

例如:


zkcli.bat -zkhost localhost:2181,localhost:2182,localhost:2183 -cmd upconfig -confdir D:\develop-env\solr-cluster\solr-1\server\solr\configsets\basic_configs\conf -confname solrconf


本人验证实例如下:

zkcli.bat -zkhost localhost:2181,localhost:2182,localhost:2183 -cmd upconfig -confdir N:\solrcloud\solr1\server\solr\configsets\sample_techproducts_configs\conf -confname solrconf

上传以后,查看是否成功,用zk客户端连接到任意一个zk服务器,查看 根路径

zkCli.cmd -server localhost:2181

ls /

ls /configs

如果有我们前面命名的 solrconf,说明上传成功

 启动solr

设置好以后,用cmd先进入solr-1的bin目录,执行命令 ,然后分别进入 solr-2/bin solr-3/bin solr-4/bin,同样执行下面命令:

solr start

然后访问地址 http://localhost:8981/ (或8982 8983 8984)

 

创建solr core 

新建一个core,在config set选项中,能看到上传的solr配置

选择solrconf配置,numShards 和replicationFact 都填4,添加添加按钮,会提示错误:

 

 最后一句说需要 4*4=16个分片,超出了允许的值。规则是 numShards数量 * replicationFact数量 <= solrCloud中solr服务的数量

 

numShards 和replicationFact 分别填 1 1 创建 core1

numShards 和replicationFact 分别填 4 1 创建 core1

numShards 和replicationFact 分别填 1 4 创建 core1

numShards 和replicationFact 分别填 2 2 创建 core1

然后查看 Cloud

黑色选中的是zk选举出来的leader 

访问其他solr,效果一样