频道栏目
首页 > 资讯 > 其他 > 正文

Solr学习总结之Solr集群搭建教程

18-07-13        来源:[db:作者]  
收藏   我要投稿

前言

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

什么是SolrCloud

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

特色功能:

集中式的配置信息 自动容错 近实时搜索 查询时自动负载均衡

SolrCloud集群的系统架构

参考架构:

这里写图片描述

本次搭建架构:

这里写图片描述

SolrCloud集群搭建

一、运行环境

Solr:Solr7.1.0

Jdk:”1.8.0_144”

Tomcat:apache-tomcat-8.5.32

zookeeper:3.4.11

本次搭建搭建是3个zookeeper和4个tomcat。由于机器限制,都安装在同一台虚拟机中。

二、安装:

第一步:准备

建立solrcloud文件夹将solrhome 、zk、tomcat移入(本机之前装过单机版zk,参考)

[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
[root@localhost local]# mkdir solrcloud
[root@localhost local]# cp -r solrhome/ solrcloud/
[root@localhost local]# cp -r zookeeper solrcloud/

[root@localhost local]# ls
[root@localhost local]# cd solrcloud/
[root@localhost solrcloud]# ls

[root@localhost local]# cd solrcloud/
[root@localhost solrcloud]# ls
[root@localhost solrcloud]# cp -r ../tomcat/ .
[root@localhost solrcloud]# ls

这里写图片描述

第二步:重命名和复制

1、重命名solrhome,并将其复制成4份

[root@localhost solrcloud]# mv solrhome/ solrhome01
[root@localhost solrcloud]# cp -r solrhome01/ solrhome02
[root@localhost solrcloud]# cp -r solrhome01/ solrhome03
[root@localhost solrcloud]# cp -r solrhome01/ solrhome04
[root@localhost solrcloud]# ls

这里写图片描述

2、 重命名tomcat,并将其复制成4份

[root@localhost solrcloud]# mv tomcat/ tomcat01
[root@localhost solrcloud]# cp -r tomcat01/ tomcat02
[root@localhost solrcloud]# cp -r tomcat01/ tomcat03
[root@localhost solrcloud]# cp -r tomcat01/ tomcat04

[root@localhost solrcloud]# 
[root@localhost solrcloud]# ls

这里写图片描述

3、重命名zk并将其复制成3份

[root@localhost solrcloud]# mv zookeeper/ zookeeper01
[root@localhost solrcloud]# cp -r zookeeper01/ zookeeper02
[root@localhost solrcloud]# cp -r zookeeper01/ zookeeper03
[root@localhost solrcloud]# ls

这里写图片描述

第三步:修改tomcat下server.xml和web.xml文件

1.1、修改tomcat01中conf下的server.xml文件

[root@localhost solrcloud]# cd tomcat01/apache-tomcat-8.5.32/conf/
[root@localhost conf]# ls
[root@localhost conf]# vi server.xml 

这里写图片描述

这里写图片描述

这里写图片描述

2.1、修改web.xml文件 中solrhome的目录

[root@localhost conf]# cd ../webapps/solr/
[root@localhost solr]# cd WEB-INF/
[root@localhost WEB-INF]# ls
[root@localhost WEB-INF]# vi web.xml 

这里写图片描述

同理:1.2、修改tomcat02下的server.xml文件

[root@localhost WEB-INF]# cd /usr/local/solrcloud/tomcat02/apache-tomcat-8.5.32/conf/
[root@localhost conf]# vi server.xml

这里写图片描述
这里写图片描述
这里写图片描述

2.2、修改tomcat02下的web.xml

[root@localhost conf]# cd ../webapps/solr/WEB-INF/
[root@localhost WEB-INF]# ls
[root@localhost WEB-INF]# vi web.xml

这里写图片描述

1.3、修改tomcat03下的server.xml文件

 vi /usr/local/solrcloud/tomcat03/apache-tomcat-8.5.32/conf/server.xml

这里写图片描述
这里写图片描述
这里写图片描述

2.3、修改tomcat03下的web.xml下solrhome的路径

[root@localhost WEB-INF]# vi /usr/local/solrcloud/tomcat03/apache-tomcat-8.5.32/webapps/solr/WEB-INF/web.xml

这里写图片描述

1.4、修改tomcat04下的server.xml文件

vi /usr/local/solrcloud/tomcat04/apache-tomcat-8.5.32/conf/server.xml 

这里server对应的port设为了18009,如果设成8009会和起初安装单机版的tomcat中的端口冲突。
这里写图片描述
这里写图片描述
这里写图片描述

2.4、修改tomcat04下的web.xml下solrhome的路径

[root@localhost WEB-INF]# vi /usr/local/solrcloud/tomcat04/apache-tomcat-8.5.32/webapps/solr/WEB-INF/web.xml

这里写图片描述

第四步:修改zk下的zoo.cfg文件

1.1、修改zookeeper01下conf下的zoo.cfg文件

这里写图片描述
dataDir=/usr/local/solrcloud/zookeeper01/dataDir
这里写图片描述

1.2、创建zookeeper01 dataDir下myid并填入值1

(dataDir名字可能不同)
这里写图片描述

同理:2.1、创建zookeeper02 dataDir下myid并填入值2

这里写图片描述

2.2、修改zookeeper02下conf下的zoo.cfg文件

这里写图片描述
这里写图片描述

3.1、创建zookeeper03 dataDir下myid并填入值3

[root@localhost conf]# cd ../../zookeeper03
[root@localhost zookeeper03]# cd dataDir/
[root@localhost dataDir]# rm -rf *
[root@localhost dataDir]# echo 3 >>myid

3.2、修改zookeeper03下conf下的zoo.cfg文件

[root@localhost dataDir]# cd ../conf/
[root@localhost conf]# vi zoo.cfg 

这里写图片描述

第五步:让solr和zk建立联系,修改tomcat下的catalina.sh

[root@localhost conf]# cd ../../
[root@localhost solrcloud]# vi tomcat01/apache-tomcat-8.5.32/bin/catalina.sh 

这里写图片描述

JAVA_OPTS="-DzkHost=192.168.91.130:12181,192.168.91.130:22181,192.168.91.130:32181"

Tomcat02/tomcat03/tomcat04中添加同样这句话
这里写图片描述

第六步:修改solrhome下的solr.xml

1、修改solrhome01下的solr.xml文件

[root@localhost solrcloud]# vi solrhome01/solr.xml

这里写图片描述
同理:修改solrhome02、03、04下的solr.xml文件

[root@localhost solrcloud]# vi solrhome02/solr.xml

这里写图片描述

[root@localhost solrcloud]# vi solrhome03/solr.xml 

这里写图片描述

[root@localhost solrcloud]# vi solrhome04/solr.xml 

这里写图片描述

第七步:启动4个tomcat和3个zk

1.1、编写启动zk脚本:

[root@localhost solrcloud]# vi startallzk.sh
cd zookeeper01/bin/
./zkServer.sh start
cd ../../
cd zookeeper02/bin/
./zkServer.sh start
cd ../../
cd zookeeper03/bin/
./zkServer.sh start
cd ../../

1.2、编写zk停止脚本:

[root@localhost solrcloud]# vi shutdownallzk.sh
cd zookeeper01/bin/
./zkServer.sh stop
cd ../../
cd zookeeper02/bin/
./zkServer.sh stop
cd ../../
cd zookeeper03/bin/
./zkServer.sh stop
cd ../../

1.3、给startallzk.sh 和shutdownallzk.sh添加权限
这里写图片描述
1.4、启动zk
这里写图片描述
2.1、编写tomcat的启动脚本

[root@localhost solrcloud]# vi startalltm.sh
cd tomcat01/apache-tomcat-8.5.32/bin/
./startup.sh
cd ../../..
cd tomcat02/apache-tomcat-8.5.32/bin/
./startup.sh
cd ../../..
cd tomcat03/apache-tomcat-8.5.32/bin/
./startup.sh
cd ../../..
cd tomcat04/apache-tomcat-8.5.32/bin/
./startup.sh
cd ../../..

2.2、编写tomcat的停止脚本

[root@localhost solrcloud]# vi shutdownalltm.sh
cd tomcat01/apache-tomcat-8.5.32/bin/
./shutdown.sh
cd ../../..
cd tomcat02/apache-tomcat-8.5.32/bin/
./shutdown.sh
cd ../../..
cd tomcat03/apache-tomcat-8.5.32/bin/
./shutdown.sh
cd ../../..
cd tomcat04/apache-tomcat-8.5.32/bin/
./shutdown.sh
cd ../../..

2.3、给startalltm.sh 和 shutdownalltm.sh 添加权限

[root@localhost solrcloud]# chmod u+x startalltm.sh 
[root@localhost solrcloud]# chmod u+x shutdownalltm.sh 

第八步:修改core.properties

如果此时直接启动tomcat会报错,首先是no coreNodeName错,接着是no shard错,所以接下来修改core.properties

//solrhome01-04下的core.properties中分别添加coreNodeName=c1至c4,shard=s1至s4,如下图
[root@localhost solrcloud]# vi solrhome01/collection1/core.properties 
[root@localhost solrcloud]# vi solrhome02/collection1/core.properties 
[root@localhost solrcloud]# vi solrhome03/collection1/core.properties 
[root@localhost solrcloud]# vi solrhome04/collection1/core.properties

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

第九步:使用zk管理solr配置文件

去到这个路径,/usr/local/soft/solr-7.1.0/server/scripts/cloud-scripts执行

./zkcli.sh -zkhost 192.168.91.130:12181,192.168.91.130:22181,192.168.91.130:32181 -cmd upconfig -confdir /usr/local/solrcloud/solrhome01/collection1/conf -confname myconf

这里写图片描述

第十步:启动每一个tomcat实例。

保证zookeeper集群是启动状态
这里写图片描述

第十步:创建新的collection进行分片处理。

首先在浏览器访问任意一个solr地址,访问集群,但是会提示错误没有核心,不用管它.

比如:访问8081对应的solr
http://192.168.91.130:8081/solr/index.html

执行下面,开始创建集群。

创建新的额collection进行分片处理

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

指令含义:创建一个名字为collection2的核心,包含两个分片,每个分片两台机器。

最终提示seccess代表创建成功。

最后访问:http://192.168.91.130:8081/solr/index.html#/~cloud

如下图:
这里写图片描述

 

总结

配置回顾:

这里写图片描述

搭建的过程中重在理解每一步的意思,搭建成功过之后回过头来仔细去看搭建的过程,理解每一步都是为什么,再看就会比较清楚。搭建的方法不只一种,参考即可,有错误欢迎指出~~~

相关TAG标签
上一篇:android开发关于ll的代码展示
下一篇:关于 Access denied for user ''@'localhost' to database 'liang' 问题的解决办法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站