1.本次搭建的solr集群为四个实例,需要四个solr和四个tomcat
先将tomcat copy4份solrcolud 中
修改端口号:8080-8083
2.安装solr实例
将单机版solr中的solr工程 复制到这四个tomcat/webapps中并启动
启动和关闭tomcat比较麻烦,写批处理文件
vim solr-tomcat-all-start.sh
tomcat1/bin/startup.sh
tomcat2/bin/startup.sh
tomcat3/bin/startup.sh
tomcat4/bin/startup.sh
vim solr-tomcat-all-stop.sh
tomcat1/bin/shutdown.sh
tomcat2/bin/shutdown.sh
tomcat3/bin/shutdown.sh
tomcat4/bin/shutdown.sh
保存shell脚本,并chmod +x
测试一下脚本
创建solrhome,将单机版中solrhome copy四份到solrcloud中
修改四个solr工程的web.xml ,重新分配solrhome路径
剩下的三个以此类推修改保存
测试启动查看各个solr是否能够访问 --图为其中之一
3.开始搭建solr集群
将solrhome中配置文件上传到zookeeper集群中,使用zookeeper的客户端。
位置在solr的源码包中找到zkcli.sh - /tool/solr/solr-4.10.3/example/scripts/cloud-scripts
命令符
./zkcli.sh -zkhost 192.168.255.129:2181,192.168.255.129:2182,192.168.255.129:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf
如果执行时报错
=
则在example执行以下命令,完成后再从新上传配置文件
查看配置文件是否上传成功
启动/usr/local/solrcloud/zookeeper1/bin/zkCli.sh
命令符:ls / - 查看根目录
红框中就是/usr/local/solrcloud/solrhome1/collection1/conf 中配置文件,已经上传到zookeeper集群中进行统一管理
修改所有solrhome下的solr.xml,指定当前运行solr工程的tomcat ip和端口号
以此类推修改其他的solr.xml中的ip和端口-8081、8082、8083
为了让运行中solr工程知道去找zookeeper中配置文件,需要给每一个solr实例中的catalina.sh添加zookeeper的地址
在catalina.sh中增减:JAVA_OPTS="-DzkHost=192.168.255.129:2181,192.168.255.129:2182,192.168.255.129:2183"
添加位置不能随意添加-尽量使用查找命令-找到第一个JAVA_OPTS出现的位置下面添加
catalina.sh所在位置 /usr/local/solrcloud/tomcat1/bin (以及其他三个tomcat也要修改)
修改前
修改后
全部配置完成后则重启全部solr 的tomcat
如下图
出现 Cloud菜单则成功!!!
开始分片
创建1个两片的collection,每片分别是一主一备,需要执行以下命令:
http://192.168.255.129:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
再次访问solr
可以删除collcetion1
http://192.168.255.129:8080/solr/admin/collections?action=DELETE&name=collection1
删除成功!!
集群完成!!