solr集群搭建

来源:互联网 发布:好老板进销存软件 编辑:程序博客网 时间:2024/05/16 04:46


http://blog.csdn.net/qwlzxx/article/details/69791644

继上篇《Zookeeper集群搭建》,此篇介绍Solr集群的搭建。


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

[plain] view plain copy print?
  1. [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01  
  2. [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02  
  3. [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03  
  4. [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04  


[plain] view plain copy print?
  1. [root@localhost solr-cloud]# vim tomcat02/conf/server.xml  
  2. [root@localhost solr-cloud]# vim tomcat03/conf/server.xml  
  3. [root@localhost solr-cloud]# vim tomcat04/conf/server.xml  


需要修改的内容:

[html] view plain copy print?
  1. <Server port="<span style="color: rgb(255, 0, 0);">8005</span>shutdown="SHUTDOWN">  
  2. <Connector port="<span style="color: rgb(255, 0, 0);">8080</span>protocol="HTTP/1.1"  
  3.                connectionTimeout="20000"  
  4.                redirectPort="8443" />  
  5.  <Connector port="<span style="color: rgb(255, 0, 0);">8009</span>protocol="AJP/1.3" redirectPort="8443" />  


红色数字部分每一个tomcat都依次往上加上一个数,避免冲突。

第二步:向tomcat下部署solr。

把单机版的solr工程复制到tomcat下即可。

[plain] view plain copy print?
  1. [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat01/webapps/  
  2. [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat02/webapps/  
  3. [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat03/webapps/  
  4. [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat04/webapps/  


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

[plain] view plain copy print?
  1. [root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome01 -r  
  2. [root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome02 -r  
  3. [root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome03 -r  
  4. [root@localhost solr]# cp solrhome/ /usr/local/solr-cloud/solrhome04 -r  


第四步:为每个solr实例关联对应的solrhome。

修改web.xml

[html] view plain copy print?
  1. [root@localhost solr-cloud]# vim tomcat01/webapps/solr/WEB-INF/web.xml  
  2. [root@localhost solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml  
  3. [root@localhost solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml  
  4. [root@localhost solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml   


修改内容:

[html] view plain copy print?
  1. <env-entry>  
  2.      <env-entry-name>solr/home</env-entry-name>  
  3.      <env-entry-value>/usr/local/solr-cloud/solrhome<span style="color: rgb(255, 0, 0);">01</span>  
  4. t;/env-entry-value>  
  5.      <env-entry-type>java.lang.String</env-entry-type>  
  6.   </env-entry>  


其它三个依次对应02,03,04

第五步:修改每个solrhome下的solr.xml文件。

修改host、hostPort两个属性。分别是对应的ip及端口号。

[html] view plain copy print?
  1. [root@localhost solrhome01]# vim solr.xml  
  2. [root@localhost solrhome01]# vim ../solrhome02/solr.xml  
  3. [root@localhost solrhome01]# vim ../solrhome03/solr.xml  
  4. [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集群已经启动。

首先进入目录

[plain] view plain copy print?
  1. [root@localhost cloud-scripts]# cd /root/solr-4.10.3/example/scripts/cloud-scripts  


[plain] view plain copy print?
  1. ./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命令。
进入目录:

[plain] view plain copy print?
  1. cd /usr/local/solr-cloud/zookeeper01/bin/  


执行命令:

[plain] view plain copy print?
  1. ./zkCli.sh  


结果:

可以继续通过命令查看上传的文件,最主要的是solrconfig.xml和schema.xml

退出命令:quit

第八步:告诉solr实例zookeeper的位置。

需要修改tomcat的catalina.sh添加

[html] view plain copy print?
  1. JAVA_OPTS="-DzkHost=192.168.80.130:2181,192.168.80.130:2182,192.168.80.130:2183"  


每个节点都需要添加。

[html] view plain copy print?
  1. cd /usr/local/solr-cloud/tomcat01/bin/  
  2. vim catalina.sh  


 在用之前添加,添加位置

其他三个tomcat的操作一样。

第九步:启动每个solr实例。

用配置文件进行启动

[plain] view plain copy print?
  1. [root@localhost solr-cloud]# vim start-all.sh  


添加内容:

[plain] view plain copy print?
  1. /usr/local/solr-cloud/tomcat01/bin/startup.sh  
  2. /usr/local/solr-cloud/tomcat02/bin/startup.sh  
  3. /usr/local/solr-cloud/tomcat03/bin/startup.sh  
  4. /usr/local/solr-cloud/tomcat04/bin/startup.sh  


提升可执行权限

[plain] view plain copy print?
  1. [root@localhost solr-cloud]# chmod +x start-all.sh  


启动

[plain] view plain copy print?
  1. [root@localhost solr-cloud]# ./start-all.sh  


可以查看启动日志,验证是否已启动

[plain] view plain copy print?
  1. [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集群搭建的整个过程。任何东西不能只是从理论上理解,还要亲手实践,循环往复,上手能力才会越来越强