1、solr集群搭建

2、使用solrj管理solr集群

3、把搜索功能切换到集群版

 

1.  什么是SolrCloud

 

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

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

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)近实时搜索

4)查询时自动负载均衡

 

1.  Solr集群的系统架构

Solr-cloud集群搭建

1.1. 物理结构

三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud

1.2. 逻辑结构

索引集合包括两个Shardshard1shard2),shard1shard2分别由三个Core组成,其中一个Leader两个ReplicationLeader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。

用户发起索引请求分别从shard1shard2上获取,解决高并发问题。

 

1.2.1.   collection

CollectionSolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),它们使用相同的配置信息。

比如:针对商品信息搜索可以创建一个collection

 collection=shard1+shard2+....+shardX

 

1.2.2.   Core

每个CoreSolr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。

1.2.3.   MasterSlave

Mastermaster-slave结构中的主结点(通常说主服务器),Slavemaster-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shardmasterslave存储的数据是一致的,这是为了达到高可用目的。

1.2.4.   Shard

Collection的逻辑分片。每个Shard被化成一个或者多个replication,通过选举确定哪个是Leader


1.1. 需要实现的solr集群架构

Solr-cloud集群搭建


Zookeeper作为集群的管理工具。

1、集群管理:容错、负载均衡。

2、配置文件的集中管理

3、集群的入口

 

需要实现zookeeper 高可用。需要搭建集群。建议是奇数节点。需要三个zookeeper服务器。

 

搭建solr集群需要7台服务器。

 

搭建伪分布式:

需要三个zookeeper节点

需要四个tomcat节点。

 

建议虚拟机的内容1G以上。




单机版solr参考我上一篇



1.    Zookeeper集群搭建:

创建目录:

[[email protected] ~]# mkdir/usr/local/solr-cloud

[[email protected] ~]# cp -r zookeeper-3.4.6/usr/local/solr-cloud/zookeeper01

[[email protected] ~]# cp -r zookeeper-3.4.6/usr/local/solr-cloud/zookeeper02

[[email protected] ~]# cp -r zookeeper-3.4.6/usr/local/solr-cloud/zookeeper03

[[email protected] ~]# cd /usr/local/solr

solr/      solr-cloud/

[[email protected] ~]# cd/usr/local/solr-cloud/

[[email protected] solr-cloud]# ll


Solr-cloud集群搭建

zookeeper01创建并修改配置文件

[[email protected] solr-cloud]# cd zookeeper01

Solr-cloud集群搭建

[[email protected] zookeeper01]# mkdir data

[[email protected] zookeeper01]# cd data

[[email protected] data]# vi myid

1


Solr-cloud集群搭建


[[email protected] data]# cd ..

[[email protected] zookeeper01]# cd conf

[[email protected] conf]# ll


Solr-cloud集群搭建

[[email protected] conf]# cp zoo_sample.cfgzoo.cfg

[[email protected] conf]# vi zoo.cfg

Solr-cloud集群搭建

注意:每个人ip不一样

同样zookeeper02 zookeeper03更改一样

Zookeeper02:

Solr-cloud集群搭建

Solr-cloud集群搭建

注意:每个人ip不一样

同样zookeeper02 zookeeper03更改一样

Zookeeper02:

Solr-cloud集群搭建

Solr-cloud集群搭建

Zookeeper03:

Solr-cloud集群搭建


编写p处理启动三个zookeeper

[[email protected] solr-cloud]# vistart-all.sh

cd zookeeper01/bin

./zkServer.sh start

cd ../../

cd zookeeper02/bin

./zkServer.sh start

cd ../../

cd zookeeper03/bin

./zkServer.sh start

cd ../../

[[email protected] solr-cloud]# chmod u+xstart-all.sh

[[email protected] solr-cloud]# ./start-all.sh


Solr-cloud集群搭建

Solr集群的配置:

 

cp -r apache-tomcat-7.0.57 /usr/local/solr-cloud/tomcat01

Solr-cloud集群搭建

将配置好的solr复制到四个tomcat下:

[[email protected] solr-cloud]# cp -r../solr/tomcat/webapps/solr/ tomcat01/webapps/

Solr-cloud集群搭建

vi tomcat01/conf/server.xml

Solr-cloud集群搭建


Solr-cloud集群搭建

Solr-cloud集群搭建

vi tomcat02/conf/server.xml

 

Solr-cloud集群搭建

Solr-cloud集群搭建

vi tomcat03/conf/server.xml

Solr-cloud集群搭建

Solr-cloud集群搭建

vi tomcat04/conf/server.xml


Solr-cloud集群搭建

复制solrhome

[[email protected] solr-cloud]# cp -r../solr/solrhome/ solrhome04

[[email protected] solr-cloud]# ll

Solr-cloud集群搭建

[[email protected] solr-cloud]# vitomcat01/webapps/solr/WEB-INF/web.xml

Solr-cloud集群搭建

[[email protected] solr-cloud]# vi tomcat02/webapps/solr/WEB-INF/web.xml

[[email protected] solr-cloud]# vi tomcat03/webapps/solr/WEB-INF/web.xml

[[email protected] solr-cloud]# vi tomcat04/webapps/solr/WEB-INF/web.xml

参照上路,改序号。

 

然后集群版需要更改solr.xml

[[email protected] solrhome01]# vi solr.xml

 

Solr-cloud集群搭建

同样四个配置几乎相同,更改序号

Solr-cloud集群搭建

Solr-cloud集群搭建

修改tomcat/bin目录下的catalina.sh文件,关联solrzookeeper

把此配置添加到配置文件中:

 

JAVA_OPTS="-DzkHost=192.168.25.128:2182,192.168.25.128:2183,192.168.25.128:2184"

 

[[email protected] tomcat01]# vibin/catalina.sh


Solr-cloud集群搭建

四个tomcat都是一样。添加的参数也是一样,复制就行。

 

Solr-cloud集群搭建

zookeeper统一管理配置文件。 需要把solrhome/collection1/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。

使用工具上传配置文件:/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh

一步一步cd /cloud-scripts下执行下面命令:

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

 

我这里报错没有unzip命令,所以下载了命令zip,然后上传成功。

再输入测试,是否连接成功。。。

Solr-cloud集群搭建

编写脚本启动所有tomcat

[[email protected] solr-cloud]# vistart-tomcat-all

/usr/local/solr-cloud/tomcat01/bin/startup.sh


Solr-cloud集群搭建

[[email protected] solr-cloud]# chmod u+xstart-tomcat-all

Solr-cloud集群搭建

启动

[[email protected] solr-cloud]#./start-tomcat-all

Solr-cloud集群搭建


查看日志是否启动成功:

[[email protected] solr-cloud]# tail -f/usr/local/solr-cloud/tomcat01/logs/catalina.out

Solr-cloud集群搭建

Solr-cloud集群搭建


蓝瘦  过程有几个细节有问题,导致失败,后来修改修改才行。。。。。。。。。。。











相关文章:

  • 2021-10-28
  • 2021-12-17
  • 2021-06-29
  • 2021-08-14
  • 2021-04-18
  • 2021-09-27
  • 2022-02-10
猜你喜欢
  • 2021-09-10
  • 2021-04-03
  • 2021-05-26
  • 2021-09-14
  • 2021-04-14
相关资源
相似解决方案