在https://gist.github.com/kalharbi/fd29661b9926eb087c45使用这个梦幻般的Kalharbi GIST,我在我的localhost上配置了 SolrCloud ,在端口 2181 , 2182 和 2183 上有三个 ZooKeeper 服务器,其角色分别是跟随者,关注者和领导者 .
我已经将两个不同的配置,即 tr_config & rp_config 上传到ZooKeeper,并使用以下命令创建两个集合
我的配置文件夹包含一些文件,如schema.xml,solrconfig.xml等,at
-/opt/solr/server/solr/configsets/tr_config
-/opt/solr/server/solr/configsets/rp_config
Upload config To ZooKeeper :
./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost 127.0.0.1:2181 -confdir ./server/solr/configsets/tr_config/conf/ -confname tr_config
./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost 127.0.0.1:2181 -confdir ./server/solr/configsets/rp_config/conf/ -confname rp_config
Create Collections :
curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=transactions&numShards=2&replicationFactor=1&collection.configName=tr_config'
curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=properties&numShards=2&replicationFactor=1&collection.configName=rp_config'
它工作正常,但我已经更改 solrconfig.xml 属性集合并再次更新配置到ZooKeeper服务器,然后它在solr初始化时显示 lockType.native 问题,所以我在 solrconfig.xml 上设置了 lockType:none . 它再次有效 . 但是当我使用命令在8983,9984和8985等不同端口上运行所有solr实例时
$ ./bin/solr start -c -p 8983 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
$ ./bin/solr start -c -p 8984 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
$ ./bin/solr start -c -p 8985 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
表明
没有托管shard的服务器:shard1
但如果我停止8984和8985端口上的其他solr实例和 restart 8983那么我的所有文档都是可查询的 . 再次,如果我启动任何8984或8985 solr实例,8983实例再次不可查询 .
问题可能是数据索引目录对于所有三个solr实例都是相同的,但我不知道如何为每个其他solr集合配置不同的目录 . 所以专家对我的下面问题有所了解 .
-
有什么问题?为什么我在更新ZooKeeper上的配置时无法运行三个实例 .
-
如何更改maxShardsPerNode?
提前致谢
1 回答
您已经发现,它将运行多个节点,您必须为它们提供不同的
solr.home
目录 .您可以在启动Solr时设置此项:
关于
maxShardsPerNode
,我不是't think you can' . 创建集合时,该集合的设置为"set in stone" . 然而,Rebalance API正在进行中,以使这些事情变得更容易 .现在,您可以使用手动SPLITSHARD命令将分片拆分为两个不同的部分 . 这可以在服务器响应请求时完成,并将分片分成两半 .