当前位置: 首页 > 知识库问答 >
问题:

将Zookeeper添加到现有Solr

公西毅
2023-03-14

我有一个现有的Solr设置,运行在一个独立的Solr实例上。我被要求为此设置添加弹性和高可用性。因此,我想将复制添加到我的设置中,我认为SolrCloud是一种方式?

我已经在SolrCloud wiki上浏览了演示。然而,我不确定如何将现有的Solr实例添加到ZooKeeper,然后再添加一些节点以供复制。这是否可以不重新膨胀?

维基上说

注意:如果不使用示例启动solr,请确保在创建集合之前将配置集上载到zookeeper。

但是,我不确定它指的是哪些文件以及如何执行此操作?

Cuurent安装信息:

  • Solr 4.5.1
  • 2vCPU的24GB RAM
  • 索引中有6600万份文档
  • 58Gb索引大小
  • 批量索引时间约50小时
  • 最多4000个用户
  • 平均400个并发用户
  • 每天更新20k次
  • 通过solrJ应用程序进行用户搜索
  • 查询涉及分组

愿望清单

  • 现有Solr索引复制到2个新节点
  • 3个Zooeger节点提供弹性

我所尝试的:

  • 下载动物园管理员,运行zkServer启动默认设置-OK
  • 使用选项-DzkHost=实际上的主机名:2181启动现有的solr设置

但是我从solr收到一个错误“无法加载SOLR配置”。

所以我想我的问题总结如下:

  1. 因为我的设置是SolrCloud,而不是说ReplicationHandler

我对Solr(使用约12个月)非常陌生,对Zookeeper和SolrCloud(阅读/实验约2周)也非常陌生,所以如果您对实现上述目标有任何建议,我将不胜感激。

共有2个答案

仉峻
2023-03-14

使用solrcloud,如果使用多个碎片,则可以在不同节点上分割内容。您可以从单个碎片(一个引线和几个副本)开始。然后将当前使用的solr classic中的index和tlog目录复制到solr cloud leader。这样就不需要重新编制索引。稍后,如果内容对于单个节点来说太大,或者如果要将索引分散到多个节点,则可以拆分碎片。solr的最新版本是4.10.3。为什么不使用它而不是4.5.1?

Solr文档很好地解释了如何创建zk内容:https://cwiki.apache.org/confluence/display/solr/SolrCloud配置和参数

本质上,当您启动第一个solr云节点时,您可以告诉它zk集群在哪里,或者您可以选择在与solr相同的节点上启动zk。您还需要告诉它配置文件在哪里,因为它将在zk上复制它们。

贝嘉泽
2023-03-14
  • 对于我的设置,SolrCloud是要走的路,而不是说ReplicationHandler?

SolrCloud是Solr的前进之路,所以我会说是的。

  • 是否可以在不重新索引的情况下添加solrCloud和ZK支持(50小时是很长的时间)

如果不使用分片,只使用副本,则无需重新编制索引。

  • 我应该向zk添加哪些配置文件,以及如何添加

用-Dbootstrap_conf=true开始你的拳头Solr,这将把你的配置文件加载到ZK中。

  • 如果没有额外的配置更改,切分就不是一个选项,因为我在查询中使用分组,对吗

取决于分组的具体操作参见https://wiki.apache.org/solr/DistributedSearch支持与否。

  • 我应该从solr 4.5.1升级吗?如果是,应该升级到什么程度

升级到最新版本是一个好主意,尽管Solr 4.7已经过时,但您将需要Java 7。

  • 最重要的是,我的愿望清单看起来像好主意/坏主意/棍子上的月亮吗?如果好,如何实现?如果不好,建议?

我投票赞成好主意,我有一个类似的。

 类似资料:
  • 我有一个名为的现有表。在这个表中,我有5列: persionId 人名 PMid 描述 Pamt 创建此表时,我将和设置为主键。 我现在想在主键中再包含一列——PMID。我如何编写一个语句来做到这一点?(表中已经有1000条记录了)

  • 问题内容: 如何添加到MySQL表的现有列? 问题答案: 我认为您想按照命令中的说明进行操作。可能是这样的: 在上面运行之前,请确保该列具有主索引。

  • 对于如何向已经存在的Lucene索引添加方面,我有点困惑。 我有一个使用Lucene 3.1创建的Lucene索引(创建时没有任何方面)。 我已经查看了Lucene文档中的facet,在那里他们向您展示了如何从头创建一个带有facet的索引,也就是说,您创建一个新的Lucene对象,使用分类工具向其添加facet信息(类别),然后在Lucene索引中编写该文档(使用)这还将向分类法索引添加额外数据

  • 如果我在 SQL Server 2008 中使用以下 SQL 命令来更新具有外键约束的表: 是表中我的FK列。我正在尝试引用我的表中的。我收到这个错误: 外键“UserID”引用引用表“员工”中的无效列“UserID”。

  • 我在生产中有一个基于Hibernate的应用程序,有一个大型数据库。我需要在这个应用程序中向两个实体(两个表)添加审计,我决定使用Envers。 对于每次插入、更新或删除,Envers都会向实体的审核表中添加一条新记录。 如果从应用程序一开始就支持Envers,那么审计表将在实体创建(INSERT)时填充。 Envers留档非常薄,没有提到任何关于将Envers添加到现有应用程序的内容。 如果我简

  • 背景:我刚刚读完Apache Solr 4 Cookbook。作者在其中提到需要明智地设置分片b/c新分片不能添加到现有集群中。但是,这是使用Solr 4.0编写的,目前我正在使用4.1。情况仍然如此吗?我希望我没有发现这个问题,我希望有人能告诉我其他情况。 问:在SolrCloud集群中设置分片时,我是否应该知道我将来会存储多少数据?我玩过Solandra并阅读了弹性搜索,但老实说,我是Solr