需要做到的效果:
第一步:zooKeeper集群搭建
这一步我的博客中已经也过了,就不再写了,大家可以看我的博客搭建zookeeper集群,也可以找一些网上的资料)
我的zookeeper集群搭建地址:点击我跳转
第二步:创建四个tomcat实例
分别为tomcat01,tomcat02,tomcat03,tomcat04
每个tomcat运行在不同的端口 8180、8280、8380、8480(还有其它的端口每个tomcat都改三个端口具体如下)
第三步:为每个solr实例创建一个对应的solrhome。
solr-4.10.3/example/solr中的数据拷贝到建立的solr_home文件夹中,
分别为solr_home01,solr_home02,solr_home03,solr_home04,为每一个tomcat下的webapps下的solr关联相应的solr_home,
即编辑分别编辑4个tomcat下的 webapps/solr/WEB-INF/web.xml文件,指定solr_home
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/software/solr/InstallSurround/solr_home01</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
第四步:配置solrCloud相关的配置。
每个solr_home下都有一个solr.xml,把其中的ip及端口号配置好。(4个都要配1对应1,2对应2)
第五步:让zookeeper统一管理配置文件。
需要把solr_home/collection1/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。(需要保证zookeeper集群是启动的状态)(上传一个solr_home的就行了)((需要保证zookeeper集群是启动的状态))
使用工具上传配置文件:solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh 使用的代码如下
./zkcli.sh -zkhost 192.168.80.3:2181,192.168.80.3:2182,192.168.80.3:2183 -cmd upconfig -confdir /opt/software/solr/solr_Clusters/solr_home01/collection1/conf -confname myconf
查看zookeeper上的配置文件:
使用zookeeper目录下的bin/zkCli.sh命令查看zookeeper上的配置文件:
注意点(如果不是默认的端口2181,要连接使用命令: ./zkCli.sh -server 192.168.25.154:2181 解释: -server :指定ip地址 :2181 :指定连接的端口。 |
结果如图:即可
第六步:
修改(4个)每一个tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper。
把此配置添加到配置文件中:
JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"
第六步:测试
必须将zookeeper集群和4个 Tomcat都启动
访问其中一个tomcat(例如:http://192.168.80.3:8180/solr/)
出现(初步成功)
第十步:创建新的Collection进行分片处理。
在网页上写入:
http://192.168.80.3:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
参数含义:
Name:总的collection创建的名字
numShards:将总的collection分为几片
replicationFactor:备份的个数
第十一步:删除不用的Collection。
地址:
http://192.168.80.3:8180/solr/admin/collections?action=DELETE&name=collection1
第十二步:结果如下