一、引言

国庆第三天,天气晴朗,风和日丽,是个写博客的好日子。

昨天把zookeeper的集群环境搭建好了,那么今天就需要派上用场了。那zookeeper怎么用呢? 大家都知道每一个solr都有相对应的配置文件,那么solr集群,当然是用同一个套配置文件,总不能一个solr用一套配置文件吧,这岂不是乱套了。这个时候就需要把配置文件交给zookeeper进行管理,由他来管理和控制solr。

二、准备工作

既然是solr集群,咱们先得搭建好solr的单机版,本次教程配置4个solr来搭建集群环境。

步骤一:搭建solr单机版环境,请参考小编这篇文章:在linux系统中安装solr搜索引擎

步骤二:这里是需要搭建4个solr单机版,也就是需要四个tomcat来启动,因为真正的集群环境,是在不同的服务器上来搭建的,小编为了方便写博客,所以搭建在一台服务器上,请注意端口号不要冲突

步骤三:为了方便管理,solr集群小编都放在了solrcloud文件夹下。在这里小编搭建zookeeper集群和solr集群是分别搭建在两台不同的服务器上了,之前zookeeper集群搭建也是放在了solrcloud文件夹下了,如果小伙伴用的一台服务器,可以都放在一个目录下。

步骤四:搭建zookeeper集群环境,请参考小编这篇文章:linux系统搭建zookeeper集群

步骤五:搭建了solr4个单机版后,启动4个tomcat,通过浏览器访问,需要核实搭建是否存在问题,每一个solr单机版都需要能通过浏览器访问到,则表示solr是没有问题的

步骤六:下图是小编搭建solr集群文件目录的截图,每一个solr对应一个solrhome配置文件,在搭建solr单机版中有配置solrhome的配置,请注意tomcat中的端口号不要冲突

步骤七 :可以写个shell脚本,来快速启动、关闭4个tomcat。如有不会者,可评论,小编会及时回复。

linux搭建solr集群环境-LMLPHP

 

三、使用zookeeper配置solr环境

步骤一既然solr集群的配置文件由zookeeper管理,首先把solr配置文件上传到zookeeper。在我们solr解压后的目录下,有一个客户端,通过客户端把配置文件上传到zookeeper上。

               执行如下命令,以下是三个zookeeper的ip+端口号、配置上传文件的位置、上传到zookeeper后的文件夹名

               进入客户端位置:/solr-4.10.3/example/scripts/cloud-scripts,客户端文件名:zkcli.sh

步骤二检查solr配置文件是否上传成功,进入任意zookeeper目录下,在bin目录下有个zkCli.sh文件,进入bin目录下,执行如下命令

步骤三:回到配置solr目录下,在每一个solrhome目录下修改solr.xml文件 ,找到solrcloud,共修改四次。

             配置host:表示当前运行solr服务的ip地址,配置hostPort:表示当前运行solr服务的端口号,也就是tomcat对应的端口:8080、8081、8082、8083,需要和当前运行solr的tomcat端口号一致,强调!!!!

linux搭建solr集群环境-LMLPHP

步骤四修改每一个运行solr服务的tomcat,找到tomcat/bin目录下的catalina.sh文件,进行修改,找到JAVA_OPTS写入如下配置。配置对应每一个zookeeper的ip地址以及端口号,因为小编搭建了3个zookeeper的集群,所以写了三个

linux搭建solr集群环境-LMLPHP

步骤五重启tomcat,能正常访问solr后台,则表示配置都是ok的,一切没什么问题。如果成功,则在浏览器访问如下地址

步骤六:最后solr集群如下图,黑点leader代表的是分片主节点,圆形Active代表的是从节点,并且是正常运行的。

              左侧Cloud——Graph中查看

linux搭建solr集群环境-LMLPHP

 

 

 

 

 

 

 

四、最后

如果是在一台服务器上来部署solr集群,千万、千万、千万,每一个tomcat的端口号不能重复,每一个部署在tomcat中的solr服务对应的solrhome中的端口号,千万、千万、千万不要弄混淆了,也就是步骤三,千万、千万、千万要仔细。

如果说是采用不同的服务器来部署,就不存在端口号冲突的问题,每一个服务器ip地址都不同。

说实话,这个看起来不复杂,但是因为自己粗心而导致的错误,很难找。最后效果图应该是每一个solr应该都是正常工作的,如果有出现Recovering这个,则表示配置还是存在问题的。 

如果有遇到什么问题可以欢迎评论,小编会及时回复!!!!!

10-03 19:24