继上篇《Zookeeper集群搭建》,此篇介绍Solr集群的搭建。
第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04
[root@localhost solr-cloud]# vim tomcat02/conf/server.xml
[root@localhost solr-cloud]# vim tomcat03/conf/server.xml
[root@localhost solr-cloud]# vim tomcat04/conf/server.xml
需要修改的内容:
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
红色数字部分每一个tomcat都依次往上加上一个数,避免冲突。
第二步:向tomcat下部署solr。
把单机版的solr工程复制到tomcat下即可。
[root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat01/webapps/
[root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat02/webapps/
[root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat03/webapps/
[root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat04/webapps/
第三步:为每个solr实例创建一solrhome。
[root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome01 -r
[root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome02 -r
[root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome03 -r
[root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome04 -r
第四步:为每个solr实例关联对应的solrhome。
修改web.xml
[root@localhost solr-cloud]# vim tomcat01/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml
修改内容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr-cloud/solrhome01
</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
其它三个依次对应02,03,04
第五步:修改每个solrhome下的solr.xml文件。
修改host、hostPort两个属性。分别是对应的ip及端口号。
[root@localhost solrhome01]# vim solr.xml
[root@localhost solrhome01]# vim ../solrhome02/solr.xml
[root@localhost solrhome01]# vim ../solrhome03/solr.xml
[root@localhost solrhome01]# vim ../solrhome04/solr.xml
其他三个以此类推
第六步:把配置文件上传到zookeeper。
需要使用/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh命令上传配置文件。
把/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。
需要zookeeper集群已经启动。
首先进入目录
[root@localhost cloud-scripts]# cd /root/solr-4.10.3/example/scripts/cloud-scripts
./zkcli.sh -zkhost 192.168.80.130:2181,192.168.80.130:2182,192.168.80.130:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
第七步:查看是否上传成功。
使用zookeeper的zkCli.sh命令。
进入目录:
cd /usr/local/solr-cloud/zookeeper01/bin/
执行命令:
./zkCli.sh
结果:
可以继续通过命令查看上传的文件,最主要的是solrconfig.xml和schema.xml
退出命令:quit
第八步:告诉solr实例zookeeper的位置。
需要修改tomcat的catalina.sh添加
JAVA_OPTS="-DzkHost=192.168.80.130:2181,192.168.80.130:2182,192.168.80.130:2183"
每个节点都需要添加。
cd /usr/local/solr-cloud/tomcat01/bin/
vim catalina.sh
在用之前添加,添加位置
其他三个tomcat的操作一样。
第九步:启动每个solr实例。
用配置文件进行启动
[root@localhost solr-cloud]# vim start-all.sh
添加内容:
/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh
/usr/local/solr-cloud/tomcat03/bin/startup.sh
/usr/local/solr-cloud/tomcat04/bin/startup.sh
提升可执行权限
[root@localhost solr-cloud]# chmod +x start-all.sh
启动
[root@localhost solr-cloud]# ./start-all.sh
可以查看启动日志,验证是否已启动
[root@localhost solr-cloud]# tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out
其他三个tomacat类似操作。
客户端进行访问:
第十步:集群分片。
将集群分为两片,每片两个副本。
http://192.168.80.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
第十一步:删除不用collection1
http://192.168.80.130:8080/solr/admin/collections?action=DELETE&name=collection1
根据id删除
小结
《Solr集群的架构》、《Zookeeper集群搭建》及此篇便是关于Solr集群搭建的整个过程。任何东西不能只是从理论上理解,还要亲手实践,循环往复,上手能力才会越来越强