solr安装(集群版)

工具:zookeeper

           solr

什么时候搭建集群?

当我们搜索系统访问量过大的时候,solr索引量过大的时候我们就需要搭建solr集群。

怎么搭建集群?

在搭建集群之前,我们需要明白几个名词

Collection:Collection在solr集群中是一个逻辑上完整的索引结构,它常常被划分为一个或多个分片(Shard),他们使用相同的配置信息。例如对商品信息搜索,可以创建一个collection,collection=shard1+shard2+...+shardX

Shard:每个Shard被划成一个或多个replication,通过选举确定那个是leader.

Core:Core是solr中一个独立的运行单位,提供索引,搜索服务。一个shard需要由一个Core或多个Core组成。

Master-Slave:Master-Slave一个主从结构,master为主节点,salve是从节点,为了达到高可用,我们在同一个Shard下搭建一个master节点和salver节点,当master节点挂了,salver节点扶正。

zookeeper:zookeepr在这里,我们用它作为集群的管理工具它是集群的入口,它集中管理配置文件,实现了集群的负载均衡,和容错。

下面我们来看下我们要搭建的solr的架构图

zookeeper是集群的入口,每个collection分成两片,每片有两个节点,一个主一个从。

因为zookeeper有一个投票选举,为了保证可以超过半数,所以需要三个

solr集群分成两片,每片有一主一备共四片,所以需要四个

我们开始搭建集群

我们的集群架构中需要三个zookeeper,四个solr,由于我的电脑里装运行不起来这么多的虚拟机,所以我用一台虚拟机来搭建一个伪分布式,也就是在一台虚拟机上用不同的区分不同的应用。

另外,zookeeper和solr都是java开发的,java服务比较耗内存所以虚拟机内存建议大点。

搭建solr集群的搭建共两大步:1.zookeeper集群搭建,2.solr集群搭建

搭建zookeeper集群

zookeeper集群中

1.新建一个目录存放集群

zookeeper集群中三个节点的搭建是一样的,所以我只演示一个节点的搭建,另两个省略。

命令:mkdir solr-cloud

2.把zookeeper上传到solr-cloud里去

我是用的是xftp5

3.解压zookeeper

命令:tar zxf zookeeper-3.4.6.tar.gz

4.复制三份解压后的zookeeper-3.4.6到zookeeper01中

命令:cp -r zookeeper-3.4.6 /root/art/solr-cloud/zookeeper01

5.进入zookeeper01中创建一个data目录

命令:mkdir data

6.在data里创建一个myid文件

命令:touch myid

查看一下改没改成功

命令:cat myid

7.把conf/zoo_sample.cfg改名成zoo.cfg

命令:mv zoo_sample.cfg zoo_sample.cfg

8.修改zoo.cfg文件,把data目录修改成我们创建的data目录

命令:vim zoo.cfg

这样我们就完成了一个zookeeper的配置

剩下两个zookeeper和这个一样,此处省略

solr集群搭建

三个zookeeper搭建完成,我们需要搭建四个solr

solr集群的四个节点搭建也是一样的,同样我只演示一个节点的搭建。

1.把tomcat复制四份

cp -r pache-tomcat-7.0.47 /root/art/solr-cloud/tomcat01

2.把tomcat每一个的端口号改一下

命令:vim tomcat01/conf/server.xml

在这里只给出一个tomcat修改的图,另三个省略

3.把solr的web工程部署到这四个tomcat中

也就是把配置好的单机版的赋值到tomcat的webapps中

单机版配置可以参考这篇博客https://blog.csdn.net/weixin_38497513/article/details/81410339

命令:cp -r /root/art/solr/apache-tomcat-7.0.47/webapps/solr tomcat04/webapps/

5.修改每一份solrhome的solr.xml

命令:vim solr.xml

这里只展示一份的修改,其他四个和这个一样

6.修改每个solr工程的web.xml,建立起每个solr和solrhome的关系

命令:vim tomcat01/webapps/solr/WEB-INF/web.xml

7.接着我们建立tomcat和zookeeper之间的关系

8.让zookeeper管理配置文件

使用一个工具,把随便一个solehome中的conf文件上传到zookeeper中就行,我选择了solrhome01,工具在solr/example/scripts/zkcli.sh

执行上传文件命令:./zkcli.sh -zkhost 192.168.2.100:2181,192.168.2.100:2182,192.168.2.100:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf

查看是否上传成功

先使用zookeeper的客户端zkCli.sh连接zookeeper

他在zookeeper01/bin/zkCli.sh

开始连接

连接的时候只要连接任意一个zookeeper节点就行,不是必须连leader

连接非当前节点

查看文件是否上传成功

9.启动tomcat

给tomcat写个批处理

命令:vim start-tomcat.sh

在文件中遍历四个tomcat的启动命令

给批处理文件改权限

命令:chmod +x start-tomcat.sh

启动tomcat

命令:./start-tomcat.sh

查看日志

10.访问solr

192.168.2.100:8182/solr

我们的solr的集群就搭建完成了,这个是一个主三个从,把collection1分成了一片,不是我想要的集群

如果只想要一个分片的就不用看了

下面我演示一下创建一个collection,分成两片,两主,两从

创建collection

我们需要向solr发起一个请求

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

顺便也说一下删除collection吧

删除collection

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

猜你喜欢

转载自blog.csdn.net/weixin_38497513/article/details/81410764