我使用外部Zookeeper (3.5.6)和Solr (7.7.2)运行Fusion 4.2.4。我一直在运行一组本地服务器,正在尝试迁移到AWS实例。我本地的Zookeepers的所有配置都已复制到AWS实例,因此它们在功能上应该是等效的。
我已经到了想要关闭旧的(本地) Zookeeper实例,只使用在AWS中运行的实例的地步。我已经更改了Solr and Fusion (fusion.properties)的配置,以便它们只使用AWS实例。
我遇到的问题是,Fusion的solr集群(System->Solr Clusters)与我的所有收藏相关联,仍然设置为旧的Zookeepers :9983、:9983、:9983,所以如果我关闭所有Zookeeper的旧实例,我通过Fusion的查询API的查询将不再起作用。当我尝试更改该集群的"Connect String“时,它失败了,因为该集群当前正在被集合使用。我可以创建一个新的集群,但是我看不到将这个新集群与我的任何集合相关联的方法。在一个类似于生产环境的测试环境中,我使用Fusion的Collections API更改了特定集合的searchClusterId,但是在这样做之后,当我关闭所有“旧的”Zookeeper实例时,查询仍然失败。这似乎是一条可行的道路,所以我很惊讶它似乎不起作用。
到目前为止,Lucidworks的支持还不能提供解决方案-我对建议持开放态度。
发布于 2021-06-02 01:37:50
这就是我提出的解决这个问题的方法。
我创建了一个包含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。一切似乎一开始都没有问题。
我不确定这是不是最好的方法,但据我所知,它解决了问题。
https://stackoverflow.com/questions/67787819
复制相似问题