【问题标题】:SolrCloud role assignmentSolrCloud 角色分配
【发布时间】:2014-07-21 19:10:10
【问题描述】:
我有一个包含 3 个分片、3 个副本的 SolrCloud 和一个包含 5 个成员的 Zookeeper 集合。
副本 2 即将停用,根设备由 EBS 支持,并且它具有附加的 EBS 卷。我假设重启时它将迁移到具有新公共和私有 IP 的新硬件。
我还假设我必须重新启动所有分片和副本。将新副本分配到与旧副本相同的插槽的最佳方法是什么?不是在 SolrCloud 第一次启动时分配给每个主机的分片/副本角色吗?这些分配不是存储在 Zookeeper 中吗?
【问题讨论】:
标签:
apache-zookeeper
solrcloud
【解决方案1】:
replica2 按预期使用新的公共和私有 IP 重新启动。我在所有 SOLR 主机上停止了 Tomcat,并按正常顺序重新启动它们
分片1
分片1
分片3
副本1
副本2
副本3
这不起作用,因为在重复 SolrCloud 重新启动时,replica2 将自己分配给 shard1。分片和副本分配(如我所想)维护在每个 Zookeeper 主机上 version-2 目录下的二进制文件中。以下是成功的:
- 停止所有 SOLR 主机上的 Tomcat
- 停止所有 Zookeeper 主机
- 删除所有 Zookeeper 主机上的 version-2 目录
- 启动所有 Zookeeper 主机
- 使用 CLI 工具重新上传 SOLR conf 目录
- 按上述顺序启动所有 SOLR 主机
这产生了正确的分配。