假设solr的zookeeper有三台,IP为192.168.0.100,192.168.0.102,192.168.0.103
1.通过命令行工具将文件上传到Zookeeper进行管理
之所以能分布式是因为引入ZooKeeper来统一保存配置文件,故而需要将SolrCloud的配置文件上传到ZooKeeper中,这里演示命令行进行上传
要使用命令行管理管理工具,必须要先有包,这些包就是solr.war里面/WEB-INF/lib下面的所有jar包
一般情况下,安装完solr对应的包都已经具备,但还需要每个collection中已配置好的配置文件
java -classpath .:/run/ayena/solr/tomcat/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.0.100:2181,192.168.0.101:2181 -confdir confcrashcache/ -confname collectionCrashCache
-cmd upconfig:上传配置文件
-confdir:配置文件的目录(这个须创建的collection配置文件是在confcrashcashe目录下)
-confname:指定对应的名称
查看文件是否已经上传到Zookeeper服务器:
2.将上传到ZooKeeper中配置文件与collection相关联
java -classpath .:/run/ayena/solr/tomcat/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collectionCrashCache -confname collectionCrashCache -zkhost 192.168.0.100:2181
-cmd linkconfig:为指定collection"绑定"配置文件
-collection:上面指定的collection的名称
-confname:zookeeper上面的配置文件名称
上面这句代码的意思就是:创建的core(collectionCrashCache )将使用collectionCrashCache这个配置文件
例如:执行下面这个请求将创建一个core为collection1,那么他使用的配置文件为zookeeper中的myconf这个配置
3.创建collection
curl 'http://192.168.0.100:8080/solr/admin/collections?action=CREATE&name=collectionCrashCache&numShards=8&maxShardsPerNode=1'
-name :为创建collection的名称
-numShards:为共创建多少个shard
-maxShardsPerNode:每台机器最多多少个shard
例如:上面solr机器有8台,共创建8个shard,每台机器最大1个