solrCloud的使用

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。

 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。也就是管理集群的.

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)近实时搜索

4)查询时自动负载均衡

Solr集群的系统架构

如下图,上半部分是实现的过程,下半部分是原理,看下半部分,就是把所有的数据交给collection来管理,它下面可以分无数个分片,每个分片下可以有无数个节点,这些节点存储具体的数据,每个片下的节点存储的数据是相同的,一个主节点两个副节点,当并发量高的时候副节点也可以使用,也就是当数据存储不下的时候可以加分片,当并发量提升的时候,加节点.节点就相当于上半图的core索引库,分片就相当于solr服务器.

搭建solr集群,因为没那么多服务器,所以搭建一个伪集群,在一台服务器上实现,搭建前先搭建好一台solr服务器https://blog.csdn.net/kxj19980524/article/details/85238989我下面写的是直接在一台的基础上搭建的.

首先搭建一个zookeeper集群https://blog.csdn.net/kxj19980524/article/details/85528403

然后开始搭建solr集群,因为每个solr都是在一个tomcat上运行的,所以需要四个tomcat,复制四份tomcat到solr-cloud下

 然后复制单机版的solr分别放到每个tomcat的webapps下

然后进入tomcat01/conf/server.xml下改这三个端口号,tomcat02,和03,04也都改了,只要改成不同的就可以了.

tomcat02

tomcat03

04我就不截了,改好后把solrhome复制四份

然后进入到第一个tomcat的web.xml改成相应的solrhome的位置,把四个都改成相应的位置,我就不一一截图了.

然后进入第一个solrhome中修改solr.xml,把ip地址和端口改成想对应的.这就演示一个把其余三个都改了

然后建立zookeeper集群和solr集群的连接,进入tomcat01下的bin下的catalina.sh编辑它

JAVA_OPTS="-DzkHost=192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183"

在这个地方加一行配置,端口号和ip改成zookeeper集群的端口ip就可以了,然后把其余三个tomcat也都加上同样的配置就可以了.

配置好,因为现在是集群了,但是每个solrhome下都有自己独自的配置域的配置文件,现在需要上传给zookeeper统一管理.使用zookeeper的客户端进行上传,客户端在解压缩的solr下面.

执行下面这个命令进行上传,把ip和端口改成zookeeper的ip端口

 ./zkcli.sh -zkhost 192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

执行完后查看一下是否上传成功了,进入到zookeeper下的客户端进行查看,就会看到上传成功的文件了,默认连接的是2181端口的zookeeper,也可以使用命令./zkCli.sh -server 192.168.25.155:2182来指定zookeeper的端口进行访问.

然后输入quit命令退出客户端,启动所有tomcat,编写脚本,然后给它权限,并启动

/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh
/usr/local/solr-cloud/tomcat03/bin/startup.sh
/usr/local/solr-cloud/tomcat04/bin/startup.sh

然后分别查看四个tomcat的启动状况看看是否启动成功

tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out

然后关闭防火墙,进行访问solr

现在只有一个索引库并且是一片,一个主节点三个备份节点,现在只能做负载均衡实现高并发,并不能实现扩大索引库的效果,所以需要执行命令,这个命令之间在浏览器路径执行就可以了,这个命令的意思是,创建一个controller2索引库,numShards的意思是分为两片replicationFactor的意思是每片两个节点一主一备,把ip改为自己的就可以了

http://192.168.25.155:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

 

执行完后再刷新solr页面,就会发现建好了

执行这个命令还可以把不用的controller1删除掉

http://192.168.25.155:8180/solr/admin/collections?action=DELETE&name=collection1

这个集群的整个搭建过程就完成了,下一篇使用solrj管理solrCloud集群 

猜你喜欢

转载自blog.csdn.net/kxj19980524/article/details/85370555