Solr集群搭建

  益达MIM味

Solr集群搭建

一:SolrCloud

需要用到solr+zookeeper

二:Zookeeper

1、集群管理

主从的管理、负载均衡、高可用的管理。集群的入口。Zookeeper必须是集群才能保证高可用。Zookeeper有选举和投票的机制。集群中至少应该有三个节点。

2、配置文件的集中管理

搭建solr集群时,需要把Solr的配置文件上传zookeeper,让zookeeper统一管理。每个节点都到zookeeper上取配置文件。

3、分布式锁

4、忘了

三:集群需要的服务器

Zookeeper:3台
Solr:4台

伪分布式,zookeeper三个实例、tomcat(solr)需要四个实例。

Zookeeper需要安装jdk。

四:集群搭建步骤

一:Zookeeper集群搭建

第一步:需要把zookeeper的安装包上传到服务器

第二步:把zookeeper解压

[root@localhost ~]# tar -zxf zookeeper-3.4.6.tar.gz

第三步:把zookeeper向/usr/local/solr-cloud目录下复制三份

[root@localhost ~]# mkdir /usr/local/solr-cloud
[root@localhost ~]# cp zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01 -r
[root@localhost ~]# cp zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02 -r
[root@localhost ~]# cp zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03 -r
[root@localhost solr-cloud]# cd /usr/local/solr-cloud/
[root@localhost solr-cloud]# ll
total 12
drwxr-xr-x. 10 root root 4096 Mar 26 20:01 zookeeper01
drwxr-xr-x. 10 root root 4096 Mar 26 20:01 zookeeper02
drwxr-xr-x. 10 root root 4096 Mar 26 20:01 zookeeper03

第四步:配置zookeeper

1、在zookeeper01目录下创建一个data文件夹。
[root@localhost zookeeper01]# cd zookeeper01
[root@localhost zookeeper01]# mkdir data
2、在data目录下创建一个myid的文件
3、Myid的内容为1(02对应“2”,03对应“3”)
[root@localhost zookeeper01]# echo 1 >> data/myid
4、Zookeeper02、03以此类推。
[root@localhost solr-cloud]# mkdir zookeeper02/data
[root@localhost solr-cloud]# echo 2 >> zookeeper02/data/myid;
[root@localhost solr-cloud]# mkdir zookeeper03/data;
[root@localhost solr-cloud]# echo 3 >> zookeeper03/data/myid;
5、进入conf文件,把zoo_sample.cfg文件改名为zoo.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
6、修改zoo.cfg,把dataDir=属性指定为刚创建的data文件夹。
[root@localhost conf]# vim zoo.cfg


# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/solr-cloud/zookeeper01/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#在最后添加 ip为你的服务的IP地址
server.1=192.168.136.135:2881:3881
server.2=192.168.136.135:2882:3882
server.3=192.168.136.135:2883:3883


[root@localhost solr-cloud]# cp zookeeper02/conf/zoo_sample.cfg  zookeeper02/conf/zoo.cfg
[root@localhost solr-cloud]# vim zookeeper02/conf/zoo.cfg 

dataDir=/usr/local/solr-cloud/zookeeper02/data
# the port at which the clients will connect
clientPort=2182
#在最后添加
server.1=192.168.136.135:2881:3881
server.2=192.168.136.135:2882:3882
server.3=192.168.136.135:2883:3883

[root@localhost solr-cloud]# cp zookeeper03/conf/zoo_sample.cfg  zookeeper03/conf/zoo.cfg
[root@localhost solr-cloud]# vim zookeeper03/conf/zoo.cfg 

dataDir=/usr/local/solr-cloud/zookeeper03/data
# the port at which the clients will connect
clientPort=2183

#在最后添加
server.1=192.168.136.135:2881:3881
server.2=192.168.136.135:2882:3882
server.3=192.168.136.135:2883:3883
7、修改zoo.cfg,把clientPort指定为不冲突的端口号(01:2181、02:2182、03:2183)
8、在zoo.cfg中添加如下内容:

第五步:启动zookeeper。

Zookeeper的目录下有一个bin目录。使用zkServer.sh启动zookeeper服务。

启动:./zkServer.sh start
关闭:./zkServer.sh stop
查看服务状态:./zkServer.sh status

二:搭建solr集群

第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083

第二步:向tomcat下部署solr。把单机版的solr工程复制到tomcat下即可。

第三步:为每个solr实例创建一solrhome。

第四步:为每个solr实例关联对应的solrhome。修改web.xml

第五步:修改每个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的ip及端口号。