更新solrcloud+zookeeper的配置文件,要reload collection
1、用的lib下的solr-core-4.3.1jar中的ZkCLI工具,命令在solr(web发布的)同级目录下运行。
(1)upconfig 更新配置文件命令
java -classpath ./solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost zk1:2181,zk2:2181,zk3:2181 -confdir ./updateConf -confname myConf
其中,updateConf要更新的配置文件的父目录,myConf是集群上的配置文件的父目录
(2)putfile上传单个文件命令
java -classpath ./solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -zkhost zk1:2181,zk2:2181,zk3:2181 -cmd putfile /conf/schema.prefixTips.xml example-shard1/solr/conf/schema.prefixTips.xml
其中,前者参数是zk集群上的存储路径,后者参数是要上传文件的本地路径;如果zk集群中该文件存在则会报错,不能覆盖。
2、更新zookeeper集群的配置文件后,需要用命令reload,否则solr服务器实例还是用的原来那一套配置文件。
The RELOAD action is used when you have changed a configuration in ZooKeeper.
/admin/collections?action=RELOAD&name=
name
http:
//10.0.1.6:9090/solr/admin/collections?action=RELOAD&name=newCollection
返回结果:
<response>
<lst
name=
"responseHeader"
>
<
int
name=
"status"
>
0
</
int
>
<
int
name=
"QTime"
>
1551
</
int
>
</lst>
<lst
name=
"success"
>
<lst
name=
"10.0.1.6:9090_solr"
>
<lst
name=
"responseHeader"
>
<
int
name=
"status"
>
0
</
int
>
<
int
name=
"QTime"
>
761
</
int
>
</lst>
</lst>
<lst
name=
"10.0.1.4:9090_solr"
>
<lst
name=
"responseHeader"
>
<
int
name=
"status"
>
0
</
int
>
<
int
name=
"QTime"
>
1527
</
int
>
</lst>
</lst>
</lst>
</response>