0

我正在使用外部 Zookeeper (3.5.6) 和 Solr (7.7.2) 运行 Fusion 4.2.4。我一直在运行一组本地服务器,并正在尝试迁移到 AWS 实例。我本地 Zookeeper 的所有配置都已复制到 AWS 实例,因此它们在功能上应该是等效的。

我已经到了要关闭旧的(本地)Zookeeper 实例并只使用在 AWS 中运行的实例的地步。我已更改 Solr 和 Fusion (fusion.properties) 的配置,以便它们仅使用 AWS 实例。

我遇到的问题是与我的所有收藏相关联的 Fusion 的 solr 集群(System->Solr Clusters)仍然设置为旧的 Zookeepers :9983,:9983,:9983 所以如果我关闭所有旧的 Zookeeper 实例通过 Fusion 的查询 API 进行的查询不再起作用。当我尝试更改该集群的“连接字符串”时,它会失败,因为该集群当前正在被集合使用。我能够创建一个新集群,但我看不到将新集群与我的任何集合相关联。在与生产环境类似的测试环境中,我使用 Fusion 的 Collections API 更改了特定集合的 searchClusterId,但是这样做之后,当我关闭所有“旧”Zookeeper 实例时,查询仍然失败。看来这是要走的路,所以我

到目前为止,Lucidworks 的支持还无法提供解决方案——我愿意接受建议。

4

1 回答 1

0

这就是我想出解决这个问题的方法。

我使用 AWS Fusion UI/API/等、本地 Solr、AWS Solr、本地 ZK 和 AWS ZK 创建了一个测试环境。

  1. Configure Fusion and Solr to only have the AWS ZK configured
  2. Configure the two ZKs to be an ensemble
  3. Create a new Solr Cluster in Fusion containing only the AWS ZK
  4. For each collection in Solr
      a. GET the json from <fusion_url>:8764/api/collections/<collection>
      b. Edit the json to change “searchClusterId” to the new cluster defined in Fusion
      c. PUT the new json to <fusion_url>:8764/api/collections/<collection>

完成所有这些操作后,我能够在 Fusion Admin UI 中更改“默认”Solr 集群,以确认没有集合正在使用它(我不确定是否有任何东西会使用“默认”集群,所以我认为它会明智的做法是不要冒险)。然后我能够停止本地 ZK,将 AWS ZK 置于独立模式,然后重新启动 Fusion。一切似乎都毫无问题地开始了。

我不确定这是不是最好的方法,但它解决了我能确定的问题。

于 2021-06-01T17:37:49.570 回答