Solr 集群(SolrCloud)
1 什么是 SolrCloud
SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的,当索引量很大,搜索请求并发很高,这时需要使用 SolrCloud 来满足这些需求。
SolrCloud 是基于 Solr 和 Zookeeper 的分布式搜索方案,它的主要思想是使用 Zookeeper 作为集群的配置信息中心。
它有几个特色功能:
- 1)集中式的配置信息
- 2)自动容错
- 3)近实时搜索
- 4)查询时自动负载均衡
Solr 集群结构图
Solr 集群搭建设计
本次集群采用伪集群的方式进行安装,如果是真正的生产环境,建议搭建真实集群。
SolrCloud 结构图如下:
安装 Solr 集群环境
- 安装 zookeeper 集群
- 创建 4 个 tomcat 实例,修改端口,修改solr项目 web.xml
- 创建4个Solr 索引库,修改solr.xml文件
- 提交配置文件到zookeeper
- 启动4个 tomcat,分片
1.创建 solrcloud 目录(用来存放solrcloud全部需要的文件)
mkdir solrcloud
2.启动zookeeper集群
3.安装 4 个 tomcat 和 4个solr 索引库
4. 修改 tomcat 端口 和web.xml 中索引库的位置
每一个 tomcat 都指向各自的solr索引库
5.上传索引库配置文件
执行 zkCli.sh 文件
记得改一下zookeeper ip和端口
./zkcli.sh -zkhost 192.168.31.123:2181, 192.168.31.123:2182, 192.168.31.123:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf
使用zookeeper客户端查看文件是否上传成功!
6 .修改 solrhome 下的 solr.xml 文件,指定当前的实例运行的 ip地址及端口号。
7 .修改每一台 tomcat catalina.sh 文件加入 zookeeper 服务器地址
JAVA_OPTS="-DzkHost=192.168.31.123:2181,192.168.31.123:2182,192.168.31.123:2183"
(最好定义在文件开头)
注意不能含有空格
8 启动全部的Tomcat
9 创建新的逻辑索引库并分片
创建一个新的 collection,并分两片,每片是一主一备。name后面为需要增加的索引库的名字!
(向任意一个tomcat发送请求即可)
http://192.168.31.123:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
http://192.168.31.123:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
分片成功
10 删除原来的逻辑索引库
name后面为需要删除的索引库的名字!
http://192.168.31.123:8080/solr/admin/collections?action=DELETE&name=collection1
http://192.168.31.123:8080/solr/admin/collections?action=DELETE&name=collection1
Solr集群文件,catalina.sh 中的ip需要改,solr.xml中的ip也需要改
链接:https://pan.baidu.com/s/1JsZMsh94xkiTCC5xtTk7DA
提取码:5xem