我们计划设置一个Solr集群,该集群将拥有大约30台机器。我们有3个节点的动物园管理员合奏,将管理Solr。 我们将每隔几天获得一次新的生产数据,这与Prod中的数据有很大不同。由于数据不同 非常大,我们计划使用hadoop创建整个Solr索引转储并将这些二进制文件复制到每台机器上,并可能做一些核心交换。
我还是Solr的新手,想知道这是不是一个好主意。我可以将我的数据发布到prod集群,但每次更新都可以跨越多个文档。 我不确定这会在写入发生时如何影响读取流量。
任何指针?
由于
答案 0 :(得分:0)
我不确定我是否完全理解您的解释,但在我看来,您希望迁移到新的solr云环境,并且没有停机时间。 首先,您需要知道您想要多少个分片,多少个副本等。 您需要部署solr节点,然后需要使用集合管理API根据需要创建集合(https://cwiki.apache.org/confluence/display/solr/Collections+API)。 完成所有这些后,您应该已准备好将内容添加到新的solr环境中。 您可以使用Hadoop填充新的solr云,例如使用solrj。或者,您可以使用数据导入处理程序从另一个solr(或关系数据库等)迁移数据。
如何根据文档路由创建solr云非常重要,因为它控制文档将存储在哪个分片中。 这就是为什么将原始索引数据复制到solr节点不是一个好主意,因为您可能会弄乱路由。 我发现这些解释对路由非常有用:https://lucidworks.com/blog/solr-cloud-document-routing/