往tomcat里部署实例
利用已经搭建好的单机版的solr实例
部署方法可以参考linux搭建solr服务、搜索服务搭建之solr业务域的创建
这里就将已经搭建好的实例复制过来就可以了
[root@localhost solr-cloud]# cp -r /usr/local/solr/tomcat/webapps/solr/ /usr/local/solr-cloud/tomcat01/webapps/
[root@localhost solr-cloud]# cp -r /usr/local/solr/tomcat/webapps/solr/ /usr/local/solr-cloud/tomcat02/webapps/
[root@localhost solr-cloud]# cp -r /usr/local/solr/tomcat/webapps/solr/ /usr/local/solr-cloud/tomcat03/webapps/
[root@localhost solr-cloud]# cp -r /usr/local/solr/tomcat/webapps/solr/ /usr/local/solr-cloud/tomcat04/webapps/
修改tomcat运行的端口号
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat01/conf/server.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat02/conf/server.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat03/conf/server.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat04/conf/server.xml
修改下面三处即可,如果找不到,可以用/Server port和/Connector port搜索
此时,四个Tomcat分别运行在不同的端口上,8180、8280、8380、8480,四个Tomcat上都有一个solr
为每个solr实例创建一个对应的solrhome
每一个solr都应该对应一个solrhome,此时我们可以将单机版的solrhome复制过来
[root@localhost solrhome]# cp -r /usr/local/solr/solrhome/ /usr/local/solr-cloud/solrhome01
[root@localhost solrhome]# cp -r /usr/local/solr/solrhome/ /usr/local/solr-cloud/solrhome02
[root@localhost solrhome]# cp -r /usr/local/solr/solrhome/ /usr/local/solr-cloud/solrhome03
[root@localhost solrhome]# cp -r /usr/local/solr/solrhome/ /usr/local/solr-cloud/solrhome04
关联solrhome和solr
修改solr中的配置文件关联solrhome
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat01/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat02/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat03/webapps/solr/WEB-INF/web.xml
[root@localhost solr-cloud]# vim /usr/local/solr-cloud/tomcat04/webapps/solr/WEB-INF/web.xml
进去以后搜索/usr就可以找到要修改的地方,分别是 01 02 03 04
至此,每个solr就和solrhome关联起来了
修改solrhome中的solr.xml中的当前节点的IP和端口号
[root@localhost solrhome01]# vim /usr/local/solr-cloud/solrhome01/solr.xml
[root@localhost solrhome01]# vim /usr/local/solr-cloud/solrhome02/solr.xml
[root@localhost solrhome01]# vim /usr/local/solr-cloud/solrhome03/solr.xml
[root@localhost solrhome01]# vim /usr/local/solr-cloud/solrhome04/solr.xml
。。。。。。下面两个以此类推
建立solr和zookpeer之间的关联
修改tomcat中的/bin/catalina.sh文件
[root@localhost solrhome01]# vim /usr/local/solr-cloud/tomcat01/bin/catalina.sh
[root@localhost solrhome01]# vim /usr/local/solr-cloud/tomcat02/bin/catalina.sh
[root@localhost solrhome01]# vim /usr/local/solr-cloud/tomcat03/bin/catalina.sh
[root@localhost solrhome01]# vim /usr/local/solr-cloud/tomcat04/bin/catalina.sh
修改JAVA_OPTS,JAVA_OPTS是用来配置运行时的环境变量------通过Tomcat给solr传递一个参数,建立solr与zookpeer的联系
DzkHost是zookpeer的IP地址
JAVA_OPTS="-DzkHost=192.168.25.129:2181,192.168.25.129:2182,192.168.25.129:2183"
搜索/Using
此时solr和zookpeer之间的关系就建立好了
zookeeper统一管理配置文件
需要把solrhome/collection1/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。
使用工具上传配置文件:/su/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh
[root@localhost scripts]# cd /su/solr-4.10.3/example/scripts/cloud-scripts/
[root@localhost cloud-scripts]# ./zkcli.sh -zkhost 192.168.25.129:2181,192.168.25.129:2182,192.168.25.129:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
查看zookeeper上的配置文件:
[root@localhost cloud-scripts]# cd /usr/local/solr-cloud/zookeeper01/bin/
[root@localhost bin]# ./zkCli.sh
可以看到连接的是本地的2181端口的zookpeer服务
使用以下命令连接指定的zookeeper服务
[root@localhost cloud-scripts]# cd /usr/local/solr-cloud/zookeeper01/bin/
[root@localhost bin]# ./zkCli.sh -server 192.168.25.129:2182
启动tomcat
在/usr/local/solr-cloud/目录下写一个启动tomcat的批处理
vim start-tomcat-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
:wq
[root@localhost solr-cloud]# chmod u+x start-tomcat-all.sh
./start-tomcat-all.sh
查看tomcat是否启动,调用启动日志
[root@localhost ~]# tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out
查看搭建结果
在浏览器中输入http://192.168.25.129:8180/solr得到如下界面
创建新的Collection进行分片处理
在浏览器中执行:
http://192.168.25.129:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
action=CREATE 创建索引库
name=collection2 命名为collection2
numShards=2 分片分为两片
replicationFactor=2 每片都是一主一备
删除collection1
在浏览器中执行:
http://192.168.25.129:8180/solr/admin/collections?action=DELETE&name=collection1
可以看到,此时solr集群中的索引库就剩下了一个collection2
至此,solr集群的完整搭建过程就到此结束了~~~~