SolrCloud
环境
Linux:Centos7.9
Jdk:1.8.0_151
Solr:4.10.3
Tomcat:7.0.47
Zookeeper:3.4.6
前面:hhh
如果出现503,可以重启服务器,会有奇迹,不行的话,就回去检查,一般是代码写错了
准备zookeeper
将
Solr
Tomcat
Zookeeper
上传至虚拟机,并解压 (Jdk
自行安装)将
Zookeeper
复制三份到/usr/local/solrcloud
,并命名为zookeeper01
zookeeper02
zookeeper03
#创建文件夹
[root@Heroxin005 ~]# mkdir /usr/local/solrcloud
#复制文件到该目录
[root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper01
[root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper02
[root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper03在每个
zookeeper
目录下创建文件夹data
,并在data
目录中创建myid
文件,其内容为zookeeper
编号#创建文件夹
[root@Heroxin005 zookeeper01]# mkdir data
[root@Heroxin005 zookeeper01]# cd data/
#创建文件
[root@Heroxin005 data]# echo 1 >> myid
#对zookeeper02和zookeeper03也进行相同操作修改每个
zookeeper
下的配置文件#复制一份 .cof
[root@Heroxin005 zookeeper01]# cd conf/
[root@Heroxin005 conf]# cp zoo_sample.cfg zoo.cfg
#编辑配置文件
[root@Heroxin005 conf]# vim zoo.cfg
#对另外两个zookeeper也进行该操作,注意端口号zookeeper01
zookeeper02
zookeeper03
启动服务
[root@Heroxin005 solrcloud]# zookeeper01/bin/zkServer.sh start
[root@Heroxin005 solrcloud]# zookeeper02/bin/zkServer.sh start
[root@Heroxin005 solrcloud]# zookeeper03/bin/zkServer.sh start查看状态,可以看到一个
leader
两个follower
[root@Heroxin005 solrcloud]# zookeeper01/bin/zkServer.sh status
[root@Heroxin005 solrcloud]# zookeeper02/bin/zkServer.sh status
[root@Heroxin005 solrcloud]# zookeeper03/bin/zkServer.sh status
准备Tomcat
将解压后的
Tomcat
复制四份到/usr/local/tomcats
修改端口
[root@Heroxin005 tomcats]# vim tomcat8080/conf/server.xml
#修改这三处的端口号,每一个tomcat的端口号递增就可
#如tomcat8080:端口分别为8005,8080,8009
# tomcat8081:端口分别为8006,8081,8009
...将
solr
中的solr-4.10.3.war
复制到每一个tomcat 的webapps
下[root@Heroxin005 solr-4.10.3]# mv dist/solr-4.10.3.war /usr/local/tomcats/tomcat8080/webapps/solr.war
开放tomcat端口
[root@Heroxin005 ~]# firewall-cmd --add-port=8080/tcp --permanent
[root@Heroxin005 ~]# firewall-cmd --add-port=8081/tcp --permanent
[root@Heroxin005 ~]# firewall-cmd --add-port=8082/tcp --permanent
[root@Heroxin005 ~]# firewall-cmd --add-port=8083/tcp --permanent
[root@Heroxin005 ~]# systemctl restart firewalld.service启动所有tomcat (用脚本启动吧,附件里有,记得加777权限)
[root@Heroxin005 ~]# ./tomcat-startup.sh
可以访问到每一个tomcat
关闭tomcat后,删除之前每个tomcat中webapps下的 solr.war(此时可以在webapps目录下看到solr文件夹)
[root@Heroxin005 ~]# ./tomcat-shutdown.sh
[root@Heroxin005 ~]# rm -rf /usr/local/tomcats/tomcat8080/webapps/solr.war复制日志文件,到每个tomcat下
[root@Heroxin005 solr-4.10.3]# cp example/lib/ext/* /usr/local/tomcats/tomcat8080/webapps/solr/WEB-INF/lib/
创建solrhome,每一个solr都需要一个solrhome来存放文件
[root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome1
[root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome2
[root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome3
[root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome4为每个solr指定它的solrhome
[root@Heroxin005 tomcats]# vim tomcat8080/webapps/solr/WEB-INF/web.xml
#按下图,在配置文件中修改就好启动tomcat,访问solr
搭建solr集群
进入
solr-4.10.3/example/scripts/cloud-scripts
,上传solrhome配置[root@Heroxin005 cloud-scripts]# ./zkcli.sh -zkhost 192.168.196.105:2181,192.168.196.105:2182,192.168.196.105:2183 -cmd upconfig -confdir /usr/local/tomcats/solrhome1/collection1/conf -confname myconf
进入
/usr/local/tomcats
,修改每个solrhome的solr.xml[root@Heroxin005 tomcats]# vim solrhome1/solr.xml
#为每个solr指定一个实例为每个tomcat添加指定配置
#进入目录
[root@Heroxin005 ~]# cd /usr/local/tomcats
#修改文件
[root@Heroxin005 tomcats]# vim tomcat8080/bin/catalina.sh
[root@Heroxin005 tomcats]# vim tomcat8081/bin/catalina.sh
[root@Heroxin005 tomcats]# vim tomcat8082/bin/catalina.sh
[root@Heroxin005 tomcats]# vim tomcat8083/bin/catalina.shJAVA_OPTS="-DzkHost=192.168.196.105:2181,192.168.196.105:2182,192.168.196.105:2183"
访问任一solr,成功!
创建一个两片的collection,每片是一主一备
#浏览器中输入
http://192.168.196.105:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2删除collection1
http://192.168.196.105:8080/solr/admin/collections?action=DELETE&name=collection1