前面有一篇文章(http://blog.iyunv.com/post-29.html)写了简单的单zookeeper集群部署,由于业务的需求单zookeeper是满足不了的,下面我来介绍一下多zookeeper+solr集群部署实现solr高可用。
一.最终要实现的效果如下图:
二.集群结构
主服务
172.18.85.155(centos 6.4 X64)
tomcat1(solr1) 8080
tomcat2(solr2) 8081
zookeeper 9080
从服务
172.18.85.134(centos 6.4 X64)
tomcat1(solr1) 8080
tomcat2(solr2) 8081
zookeeper 9080
三.solr的安装部署在这里就不多说了前面的文章(http://blog.iyunv.com/post-29.html)已经说的很清楚了,由于之前我们都是单zookeeper加单solr实现的伪集群,现在我们要在这2台机器上分别安装部署2个solr和1个zookeeper
1.首先在主服务上复制之前配置好的solr
[[email protected] solr4.3]# cp -rf tomcat-7.0.42 tomcat-7.0.42-8081
[[email protected] solr4.3]# ls
apache-tomcat-6.0.37-solr4.3_20130906.zip apache-tomcat-7.0.42.tar.gz mmseg4j-1.9.1 solr-4.3.0 tomcat-7.0.42 tomcat-7.0.42-8081 tomcat-solr
2.我们实现2个tomcat同时在一台机器上启动需要做以下配置:
在/etc/profile最下面添加以下内容
[[email protected] solr4.3]# vim /etc/profile
CATALINA_BASE=/usr/local/solr4.3/tomcat-7.0.42
CATALINA_HOME=/usr/local/solr4.3/tomcat-7.0.42
export CATALINA_BASE CATALINA_HOME
CATALINA_2_BASE=/usr/local/solr4.3/tomcat-7.0.42-8081
CATALINA_2_HOME=/usr/local/solr4.3/tomcat-7.0.42-8081
export CATALINA_2_BASE CATALINA_2_HOME
TOMCAT_HOME=/usr/local/solr4.3/tomcat-7.0.42
export TOMCAT_HOME
TOMCAT_2_HOME=/usr/local/solr4.3/tomcat-7.0.42-8081
export TOMCAT_2_HOME
在tomcat启动文件和关闭文件中添加以下内容:
[[email protected] bin]# pwd
/usr/local/solr4.3/tomcat-7.0.42/bin
[[email protected] bin]# vim startup.sh
export CATALINA_HOME=$CATALINA_HOME
export CATALINA_BASE=$CATALINA_BASE
[[email protected] bin]# vim shutdown.sh
export CATALINA_HOME=$CATALINA_HOME
export CATALINA_BASE=$CATALINA_BASE
在刚才复制的一份solr中添加
export CATALINA_HOME=$CATALINA_2_HOME
export CATALINA_BASE=$CATALINA_2_BASE
修改刚才复制的一份solr启动端口:
[[email protected] conf]# pwd
/usr/local/solr4.3/tomcat-7.0.42-8081/conf
[[email protected] conf]# vim server.xml
<Server port="8006" shutdown="SHUTDOWN">
默认是8005我们这里改成8006避免和另外一个tomcat冲突
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
另外一个tomcat是8080我们这里改成8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
另外一个tomcat是8009我们这里改成80810
3.修改刚才复制的solr2服务参数:
[[email protected] solr]# pwd
/usr/local/solr4.3/tomcat-7.0.42-8081/solrhome/solr
[[email protected] solr]# vim solr.xml
<cores adminPath="/admin/cores" defaultCoreName="collection1" host="${host:172.18.85.155}" hostPort="${jetty.port:8081}" hostContext="${hostContext:solr}" zkClientTimeout="${zkClientTimeout:15000}">
<core name="collection1" instanceDir="collection1" />
</cores>
[[email protected] WEB-INF]# pwd
/usr/local/solr4.3/tomcat-7.0.42-8081/webapps/solr/WEB-INF
[[email protected] WEB-INF]# vim web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr4.3/tomcat-7.0.42-8081/solrhome/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
修改完以上配置后同台机器就可以正常启动2个tomcat(solr)了。
当然在从服务器(172.18.85.134)上也要做同样的复制和修改,具体步骤这里就不做过多说明了。
四.下面我们开始配置zookeeper集群。
1.主服务(172.18.85.155)上面我们已经安装过zookeeper服务了,所以只需要在从服务上面安装zookeeper就可以了,安装步骤完全按照上文中写的步骤就可以。
2.在solr配置文件里添加zookeeper集群参数:
172.18.85.155 8080 solr1
[[email protected] bin]# pwd
/usr/local/solr4.3/tomcat-7.0.42/bin
[[email protected] bin]# vim catalina.sh
JAVA_OPTS="-Dbootstrap_confdir=/usr/local/solr4.3/tomcat-7.0.42/solrhome/solr/collection1/conf -Dcollection.configName=myconf -Djetty.port=8080 -DzkRun=172.18.85.155:9080 -DzkHost=172.18.85.155:9080,172.18.85.134:9080 -DnumShards=2"
172.18.85.155 8081 solr2
[[email protected] bin]# pwd
/usr/local/solr4.3/tomcat-7.0.42-8081/bin
[[email protected] bin]# vim catalina.sh
JAVA_OPTS="-Djetty.port=8081 -DzkRun=172.18.85.155:9080 -DzkHost=172.18.85.155:9080,172.18.85.134:9080"
172.18.85.134 8080 solr1
[[email protected] bin]# pwd
/usr/local/solr4.3/tomcat-7.0.42/bin
[[email protected] bin]# vim catalina.sh
JAVA_OPTS="-Djetty.port=8080 -DzkRun=172.18.85.134:9080 -DzkHost=172.18.85.155:9080,172.18.85.134:9080"
172.18.85.134 8081 solr2
[[email protected] bin]# pwd
/usr/local/solr4.3/tomcat-7.0.42-8081/bin
[[email protected] bin]# vim catalina.sh
JAVA_OPTS="-Djetty.port=8081 -DzkRun=172.18.85.134:9080 -DzkHost=172.18.85.155:9080,172.18.85.134:9080"
参数配置完毕,依次启动2台机器的zookeeper和tomcat就可以了。
然后打开浏览器输入:http://172.18.85.155:8080/solr/#/~cloud
查看集群效果: