1.什么是solrCloud
SolrCloud(solr云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。
它有几个特色功能:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
2.Zookeeper集群搭建
1.在/usr/local目录下创建solr-cloud目录,复制三份zookeeper到该目录下,在每个zookeeper目录下创建一个data目录。
2.在data目录下创建一个myid文件,文件名就叫做“myid”。内容就是每个实例的id。例如1、2、3
3.修改配置文件。把conf目录下的zoo_sample.cfg文件改名为zoo.cfg
修改dataDir的路径为每个zookeeper的data目录路径
clientPort=2181,客户端连接zookeeper的端口号,保证每个实例端口号不冲突
添加三个server
server.1=192.168.xx.xxx:2881:3881
server.2=192.168.xx.xxx:2882:3882
server.3=192.168.xx.xxx:2883:3883
集群中的节点列表,1、2、3代表节点的id,ip后的端口号是zookeeper内部通讯的端口和投票选举的端口,每个端口都不能重复
4.启动每个zookeeper实例
3.solr集群搭建
1.创建四个tomcat实例。每个tomcat运行在不同的端口。8180、8280、8380、8480
2.把单机版的solr工程复制到集群中的tomcat中。
3.为每个solr实例创建一个对应的solrhome,复制单机版的即可
4.修改solr的web.xml文件。把solrhome关联起来。
5.配置solrCloud相关的配置。每个solrhome下都有一个solr.xml,把其中的ip及端口号配置好。
6.让zookeeper统一管理配置文件。需要把solrhome/solr_core/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。
使用工具上传配置文件:/root/solr-7.5.0/server/scripts/cloud-scripts/zkcli.sh
./zkcli.sh -zkhost 192.168.xx.xxx:2181,192.168.xx.xxx:2182,192.168.xx.xxx:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solr1/solrhome1/solr_core/conf -confname myconf
查看zookeeper上的配置文件:
使用zookeeper目录下的bin/zkCli.sh命令查看zookeeper上的配置文件:
[root@localhost bin]# ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[configs, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /configs
[myconf]
[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf
使用以下命令连接指定的zookeeper服务:
./zkCli.sh -server 192.168.xx.xxx:2183
7.修改tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper。
把此配置添加到配置文件中:
JAVA_OPTS="-DzkHost=192.168.xx.xxx:2181,192.168.xx.xxx:2182,192.168.xx.xxx:2183"
8.启动tomcat