Apache zookeeper SolrCloud角色分配

Apache zookeeper SolrCloud角色分配,apache-zookeeper,solrcloud,Apache Zookeeper,Solrcloud,我有一个有3个碎片的SolrCloud,3个复制品和一个有5个成员的Zookeeper合奏 副本2正在失效,根设备是EBS备份的,并且它有一个连接的EBS卷。我假设重新启动时,它将迁移到具有新的公共和私有IP的新硬件 我还假设我必须重新启动所有碎片和副本。将新复制副本分配到与旧复制副本相同的插槽的最佳方法是什么?不是在第一次SolrCloud启动时分配给每个主机的碎片/副本角色吗?这些分配不是存储在Zookeeper中吗?replica2按预期使用新的公共和私有IP重新启动。我在所有SOLR主机

我有一个有3个碎片的SolrCloud,3个复制品和一个有5个成员的Zookeeper合奏

副本2正在失效,根设备是EBS备份的,并且它有一个连接的EBS卷。我假设重新启动时,它将迁移到具有新的公共和私有IP的新硬件


我还假设我必须重新启动所有碎片和副本。将新复制副本分配到与旧复制副本相同的插槽的最佳方法是什么?不是在第一次SolrCloud启动时分配给每个主机的碎片/副本角色吗?这些分配不是存储在Zookeeper中吗?

replica2按预期使用新的公共和私有IP重新启动。我在所有SOLR主机上停止Tomcat,并按正常顺序重新启动它们

碎片1 碎片1 碎片3 复制1 复制2 复制3

这不起作用,因为在重复SolrCloud重新启动时,replica2将自己分配给shard1。碎片和副本分配(正如我所想)保存在每个Zookeeper主机上版本2目录下的二进制文件中。以下是成功的:

  • 在所有SOLR主机上停止Tomcat
  • 停止所有Zookeeper主机
  • 删除所有Zookeeper主机上的版本2目录
  • 启动所有Zookeeper主机
  • 使用CLI工具重新上载SOLR conf目录
  • 按上述顺序启动所有SOLR主机
  • 这就产生了正确的作业