我设置了一个有<3个分片的 SolrCloud 结构。每个分片由2个节点组成。一个是领导者,另一个是复制品。每个solr实例(作为节点)在单独的机器中运行。现在我需要在数据量增加时添加更多机器。但是如果我添加新节点而不创建新的分片,它只会增加更多的分片副本。我想使用新机器创建更多分片,数据应该在分片中分发。
出于测试目的,我创建了一个带有一个分片(2个节点)的SolrCloud。我用solr-4.5.1尝试了solr SPLITSHARD 。最后,我从管理员窗口中看到总共3个分片( shard1 , shard1_0 和 shard1_1 )。现在它显示了总共6个节点。
在后台,它在每个节点下创建了以下文件夹。
node1:
node2:
这意味着,它在每个实例下创建了2个新内核。但我想在每台机器下运行一个核心。
答案 0 :(得分:1)
我们也遇到了同样的问题。我能看到当前版本的Solr的唯一解决方案是在新机器上添加副本,等待复制完成并删除原始版本。
此外,如果在集合中仅拆分一个分片,则群集将不会均匀分布。所以你必须按相同的因素分割每个分片。
答案 1 :(得分:0)
在创建集合时设置numShards属性后,您的意图就变得不可能了。其他答案仅描述了分裂原始编号。碎片变成更多没有。碎片但数据不会均匀分布,即假设1个数据以2个碎片开始,比如S1和S2。当在S1上分割分片时,S2中的数据变为S11,S12,S2,S2中的数据远大于S11,S12。但我认为你想要的是S1&amp ;; S2被均匀地切割成S11,S12和S2,其中S11,S12和S2在不同机器上的不同节点上运行。这在目前的Solr(甚至v6)AFAIK中是不可能的。
你想要的也是我和许多其他Solrcloud用户想要的,我认为这是一个非常正常的意图。让我们希望Solrcloud的未来版本能够提供这种功能。