1,使用伪分式实现集群部署
在一台服务器上部署3个zk,4个tomcat,由于是在同一台服务器上,zk和tomcat的端口不能重复,若分布在不同的服务器上,这个可略。
2,创建目录结构
1)创建目录:d:\XX 根据自己爱好选择盘符
2)XX 下面目录结构为:
service1 service2 service3
tomcat1 tomcat2 tomcat3 tomcat4
solr_home1 solr_home2 solr_home3 solr_home4 等文件夹
3)service中的zk的目录,三个目录结构一样,目录结构为
data datalog logs zookeeper
3,Zk安装
1)进入zk的conf目录
../XX/sercice1\zookeeper\conf
2)新建zoo,cfg并编辑此文件,文件内容如下
initLimit=5
syncLimit=2
clientPort=2181
tickTIme=2000
data=D:\\XX\service1\data
dataLogDir=D:\\XX\service1\datalog
//集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
initLimit:集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTIme的数量)
tickTime:zk服务器之间或客户端与服务器之间维持心跳的时件间隔
syncLimit:集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数
3)在data目录新建myid文件,并写入值
文件中写入一个数字,每台zk不能重复,代表zk的唯一性,在zook.cfg中需要配置到
4)启动zk
分别进入zk的bin目录中双击zkServer.cmd启动
4,安装tomcat
1),复制单机的tomcat 在d:\XX下,分别更名为tomcat1,tomcat2,tomcat3,tomcat4
2),编辑tomcat中solr项目的web.xml文件,找到env-entry节点编辑为以下内容
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>d:\XX\sole_home1</env-entry-name> <!--solr的用户目录,用于存储索引等,每个tomcat需要配置的都不一样-->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
3)添加sole_home内容
在d:\XX 下面创建solr_home1,solr_home2,solr_home3,solr_home4文件夹
4)修改solr.xml
<init name="hostPort">${jetty.port:9091}</int><!--修改成你当前的tomcat的运行端口,每个solr_home对应的tomcat端口不一样(伪集群)-->
5)新建配置文件按目录(用于zk的集群配置管理),选择其中一个solr_home1中新建一个collection1文件夹(此文件夹只需要建一个,不必每个机器上都建,他会通过zk分发到每个机器中)
将solr原包中../solr/server/solr/configsets/basic_configs/* 拷贝到 ../solr_home1/collection1/ 下
6,修改tomcat的文件catalina.bat文件
一台添加:set JAVA_OPTS=-Dsolr.solr.home=D:/XX/solr_home1 -Dbootstrap_confdir=D:/XX/solr_home1/collection1/conf -Dcollection.configName=myconf -DnumShards=2 -DzkHost=localhost:2181,localhost:2182,localhost:2183
其他添加:set JAVA_OPTS=-Dsolr.solr.home=D:/solrcloud/solr_home2 -DzkHost=localhost:2181,localhost:2182,localhost:2183
5,启动集群
1)依次启动zk和tomcat服务器
2)访问http://localhost:8081/solr/
3)创建一个solr的collection http://localhost:8081/solr/admin/collectionsaction=CREATE&name=eSearch&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=myconf
4)删除一个collection
http://localhost:8081/solr/admin/collections?action=DELETE&name=eSearch
原文:https://www.cnblogs.com/longlonggao/p/13734625.html