因为是在个人电脑上,因此将所有的solr搭建到同一台虚拟机上,更改一下端口号,实现伪集群
1 、首先先搭建zookeeper集群
- 将linux下的zookeeper安装包复制到linux下,并解压
- 将解压好的zookeeper复制到,/usr/local/solrCloud/zookeeper01 到 03文件下(搭建三个zookeeper)
可以只提前建好,solrCloud文件夹,至于里面三个文件,可以在复制的时候,改名即可
例如 cp -r zookeeper-3.4.6 /usr/local/solrCloud/zookeeper01 zookeeper01文件夹可以不存在
- 在zookeeper 01 ~03 三个目录下都创建data目录,并且在data目录下创建myid文件,分别写上1,2,3
- 修改每一个的zookeeper的配置文件
首先重命名 mv zoo_sample.cfg zoo.cfg 然后编辑配置文件
(修改路径)将每一个dataDir修改成自己的路径es /usr/local/solrCloud/zookeeper01/data
(更改端口号)因为这几个zookeeper是在同一台虚拟机上,因此需要更改端口号
(配置集群通信端口和选举端口),在每一个配置文件中,都加上
server.1=192.168.25.130:2881:3881
server.2=192.168.25.130:2882:3882
server.3=192.168.25.130:2883:3883
2、安装tomcat以及solr
- 将解压好的tomcat,复制四份分别到solrCloud文件夹下面的tomcat01~04,并修改tomcat端口
- 将安装好的单机版本solr,分别复制到omcat01~04的webapps下
cp -r /usr/local/solr/tomcat/webapps/solr /usr/local/solrCloud/tomcat01/webapps/solr
- 将安装好的单机版本的,solrhome复制四份到solrCloud文件下面
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome04
- (修改solrhome里面的配置文件solr.xml),将host跟hostPort写成对应的tomcat的ip和端口号
<solrcloud>
<str name="host">192.168.25.130</str>
<int name="hostPort">8180</int>
。
<solrcloud>
- 将每一个tomcat,solr里面的web.xml指定的路径,更改正确
3、将tomcat跟zookeeper建立关系
- 修改tomcat ,bin文件夹下面的catalina vi tomcat04/bin/catalina.sh ,添加上一句(注意要添加到引用之前)
JAVA_OPTS="-DzkHost=192.168.25.130:2181,192.168.25.130:2182,192.168.25.130:2183"
4、使用zookeeper管理solr的配置文件
- 在文件夹 /root/solr-4.10.3/example/scripts/cloud-scripts/ 有一个 zkcli.sh可执行文件
- 使用这个执行文件,执行下面的命令(如果配置文件有修改,再上床一次),其中zkhost就是zookeeper集群的ip跟端口号
./zkcli.sh -zkhost 192.168.25.130:2181,192.168.25.130:2182,192.168.25.130:2183 -cmd upconfig -confdir /usr/local/solrCloud/solrhome01/collection1/conf/ -confname myconf
- 查看配置文件是否成功安装,进入zookeeper的任意一个安装目录下的bin文件夹
cd /usr/local/solr-cloud/zookeeper01/bin
使用命令 ./zkCli.sh -server 192.168.25.130:2182 连接任意一个zookeeper,如果没有 -server之后的内容,默认连接2181
ls /configs/myconf,查看是否有配置文件
5、将collection实现分片,及备份
- 启动tomcat,然后就可以访问任意一个tomcat里面solr http://192.168.25.130:8480/solr/
- 按照我们上面步骤搭建的集群是,一个collection,四个备份,使用以下命令,新创建一个collection,分成2片,2个备份
- 可以使用命令把第一个默认带的集群给删除掉
http://192.168.25.130:8180/solr/admin/collections?action=DELETE&name=collection1