一、solrcloud+tomcat环境搭建
zookeeper配置:
配置过程略
地址为:192.168.1.249:2181
tomcat+solrcloud配置:
假设tomcat对外提供的端口为8088
1、将tomcat的配置文件server.xml进行修改,在<Host>标签内部加入如下代码段:
<Context docBase="/opt/app/tomcat7/webapps/solr" path="/solr" reloadable="true" />
2、修改/opt/app/tomcat7/bin/catalina.sh文件 在第二行加上一句话,指明zookeeper的地址,如果zookeeper为集群,则以逗号分隔
JAVA_OPTS="$JAVA_OPTS -DzkHost=192.168.1.249:2181"
3、创建solrhome,如/opt/app/tomcat7/solrhome,也可以创建到其他文件夹
4、拷贝solr配置文件:/root/solr-5.2.1/server/solr/solr.xml拷贝到solrhome中
5、修改solrhome下的solr.xml:
<int name="hostPort">${jetty.port:8088}</int>#这里的8088表示本节点tomcat的访问端口。
6、把/root/solr-5.2.1/server/webapps中的solr.war拷贝到tomcat的webapps文件夹中,启动tomcat,然后再删除war包
7、将/root/solr-5.2.1/server/lib文件夹中的所有jar包(可以不用拷贝jetty相关的)拷贝到/opt/app/tomcat7/webapps/solr/WEB-INF/lib中
后期还会用到很多包,都拷贝到这个目录下
8、修改/opt/app/tomcat7/webapps/solr/WEB-INF/下的web.xml文件,加上如下一段:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/app/tomcat7/solrhome</env-entry-value><!--这里必须和上面第三步建立的solrhome一致-->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
9、将tomcat和solrhome拷贝到各个节点。
10、分别启动各个节点的tomcat。
二、创建collection
1、上传collection的配置文件
/root/solr-5.2.1/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.1.240:2181 -cmd upconfig -confdir /root/solr-5.2.1/server/solr/configsets/data_driven_schema_configs/conf -confname collection3
-zkhost:zookeeper访问地址,如果有多个则写多个,以逗号分隔
-cmd upconfig:表示上传配置文件
-confdir:上传文件所在路径,/root/solr-5.2.1/server/solr/configsets/data_driven_schema_configs/conf
-confname:在zookeeper中/configs目录下显示的名称,一般和collection名称一致
注意:
这个步骤只需要执行一次即可,不用在每个节点去执行。
name collection名称
numShards 分片数
replicationFactor 每片的副本数
maxShardsPerNode 每个tomcat节点最多有几个分片
collection.configName 和上面步骤的confname一致,即在
zookeeper中/configs目录下显示的名称,一般和
collection名称一致
三、其他collection操作
1、删除collection
在浏览器地址栏输入:http://192.168.1.240:8088/solr/admin/collections?action=DELETE&name=collection3
2、修改schema信息后更新(好像不用执行重新加载也可以?但最好还是执行下)
所有配置上传到zk:
/root/solr-5.2.1/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.1.240:2181 -cmd upconfig -collection collection3 -confdir /root/solr-5.2.1/server/solr/configsets/data_driven_schema_configs/conf -confname collection3
重新加载collection:
http://192.168.1.240:8088/solr/admin/collections?action=RELOAD&name=collection3