需要先学会单机版Solr-7.7.0的搭建(Solr学习(一)——单机Solr-7.7.0的使用(Ubuntu))。
Solr集群架构图:
在一台虚拟机上,采用伪集群的方式进行安装,如果真正的生产环境,将伪集群的ip改下就可以了,步骤一样。
一、搭建环境
OS: ubuntu 18.0.4
JDK: jdk1.8.0_191
Tomcat: apache-tomcat-8.5.41
zookeeper: zookeeper-3.5.4
solr: solr-7.7.0
二、JDK和Tomcat安装、zookeeper集群搭建
在之前的文档中有关于JDK安装(JDK安装——Ubuntu)、Tomcat安装(tomcat安装——ubuntu)、zookeeper集群搭建(Zookeeper集群搭建——ubuntu),自己去查阅,这里不再详述。
- 创建文件夹/usr/local/solrcloud
root@ubuntu:/usr/local# mkdir /usr/local/solrcloud
- 复制四份tomcat到/usr/local/solrcloud下,并修改server.xml文件
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8 /usr/local/solrcloud/tomcat01
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8 /usr/local/solrcloud/tomcat02
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8 /usr/local/solrcloud/tomcat03
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8 /usr/local/solrcloud/tomcat04
修改tomcat目录下conf文件夹里的server.xml中端口号,这里演示tomcat01,其他三个类似。
root@ubuntu:/usr/local/solrcloud# vi tomcat01/conf/server.xml
使用"/port"搜索需要修改地方,按"n"搜索一个。共有三处需要修改,依次为:
其他三个端口号,tomcat02:8205 8280 8209;tomcat03:8305 8380 8309;tomcat04:8405 8480 8409。4个tomcat4个server.xml文件,共12个端口,互不冲突。
- 在/usr/local/solrcloud目录下创建zookeeper集群
详细过程见zookeeper集群搭建文章,搭建完成后文件目录为:
三、SolrCloud部署
ps : 根据文章开头链接的文章,搭建单机版solr服务,然后开始solr集群的搭建。
- 将单机版的solr工程分别复制到集群中的4个tomcat中
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8/webapps/solr/ /usr/local/solrcloud/tomcat01/webapps/
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8/webapps/solr/ /usr/local/solrcloud/tomcat02/webapps/
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8/webapps/solr/ /usr/local/solrcloud/tomcat03/webapps/
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/tomcat8/webapps/solr/ /usr/local/solrcloud/tomcat04/webapps/
- 为每一个solr实例创建一个对应的solrhome
将单机版solr服务里的solrhome复制四份到/usr/local/solrcloud中,并重命名。
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/solrhome /usr/local/sorlcloud/solrhome01
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/solrhome /usr/local/sorlcloud/solrhome02
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/solrhome /usr/local/sorlcloud/solrhome03
root@ubuntu:/usr/local/solrcloud# cp -r /usr/local/solrhome /usr/local/sorlcloud/solrhome04
- solr实例相关配置
修改每个solr实例对应的solrhome目录中的solr.xml文件,配置其中的ip和端口号。演示solrhome01中的配置:
root@ubuntu:/usr/local/solrcloud# vi solrhome01/solr.xml
修改内容:
其他三个照着改,因为在一台虚拟机上搭建的四个实例,所以host属性值不用修改,但是端口号不同。solrhome02的端口:8280,solrhome03的端口:8380,solrhome04的端口:8480。
- 修改solr服务的web.xml文件,关联对应的solrhome
root@ubuntu:/usr/local/solrcloud# vi tomcat01/webapps/solr/WEB-INF/web.xml
其他三个类似操作,tomcat02中solrhome路径:/usr/local/solrcloud/solrhome02,tomcat03中solrhome路径:/usr/local/solrcloud/solrhome03,tomcat04中solrhome路径:/usr/local/solrcloud/solrhome04.
- 把solrhome/collection1/conf目录上传到zookeeper,由zookeeper统一管理配置文件
每个solr实例都有自己的solrhome,现在我们要让每个solr实例的配置文件都一样,使用zookeeper来统一管理配置文件,需要将配置文件上传到zookeeper。注意:上传配置文件之前,必须先启动zookeeper集群。
使用/usr/local/solrcloud/solr-7.7.0/server/scripts/cloud-scripts/zkcli.sh将solr配置文件上传到zookeeper集群。
root@ubuntu:/usr/local/solrcloud# cd /usr/local/solrcloud/solr-7.7.0/server/scripts/cloud-scripts/
root@ubuntu:/usr/local/solrcloud/solr-7.7.0/server/scripts/cloud-scripts# ./zkcli.sh -zkhost 192.168.182.130:2181,192.168.182.130:2182,192.168.182.130:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome01/collection1/conf -confname myconf
其中,-zkhost:zookeeper集群的ip和端口号列表;-cmd upconfig:操作类型是上传配置文件;-confdir:上传的配置文件目录;-confname myconf:将上传的配置文件重命名为myconf.
验证上传配置是否成功……
连接任意一个zookeeper:
查看上传的文件:
可以看到我们的配置文件上传成功。若需要修改配置,只需要在conf目录里修改,然后再上传一次就可以了。
- 修改tomcat/bin目录下的catalina.sh文件,关联solr服务和zookeeper
要建立solr服务与zookeeper之间的关联,需要修改4个tomcat的配置文件,这里只演示tomcat01,其他三个相同操作。
root@ubuntu:/usr/local/solrcloud# vi tomcat01/bin/catalina.sh
在catalina.sh文件中的如下位置添加:JAVA_OPTS="-DzkHost=192.168.182.130:2181,192.168.182.130:2182,192.168.182.130:2183"。
其他3处,按照这种方式修改,位置和内容都一样。
- 启动tomcat
启动之前须保证zookeeper集群已启动。
root@ubuntu:/usr/local/solrcloud# tomcat01/bin/startup.sh
root@ubuntu:/usr/local/solrcloud# tomcat02/bin/startup.sh
root@ubuntu:/usr/local/solrcloud# tomcat03/bin/startup.sh
root@ubuntu:/usr/local/solrcloud# tomcat04/bin/startup.sh
一个一个启动太麻烦,推荐写个批处理脚本来运行。
- 访问集群
访问任意一个solr实例均可,访问地址:http://192.168.182.130:8180/solr/index.html
可以通过Collectiions板块来管理collection。