与zookeeper的Solrcloud多核主奴隶

时间:2016-02-17 21:23:10

标签: solr apache-zookeeper sharding solrcloud master-slave

我必须使用4.3.1单个solr索引并将其迁移到solrcloud 5.2.1 新的5.2.1架构是2个分片,每个分片有1个主服务器和1个从服务器(副本服务器)。我的步骤是:

  • 设置新的单个分片solrcloud 5.2.1。
  • 获取大索引数据文件夹,将其迁移到单个分片solrcloud 5.2.1,包含1个分片/核心。
  • 拆分索引。
  • 将2个数据文件夹复制到新的solrcloud 5.2.1安装(具有2个分片,1个主1副本的全新安装)。

我在一个ZooKeeper中也有配置schema.xml/solrconfig.xml(我知道不建议使用ZK)。

一切顺利,分片正在运行,副本包含数据,我可以从新的solrcloud 5.2.1 2分片中查询数据。

当我添加新文档时,副本无效。我已经定义了一个复制处理程序,但我无法确定谁是主服务器和谁是从服务器,因为它托管在Zookeeper中,并且Zookeeper负责所有配置。我有2个主人和2个奴隶,我无法决定哪个是主人,谁是奴隶。这是选举过程的目标。

我该怎么办?我理解这个过程吗?

我读过这个:How do I configure Solr replication with multiple cores。 但我的问题是我正在使用zookeeper。

1 个答案:

答案 0 :(得分:0)

流程有效,最终有效 复制不起作用的原因是因为我们在solrconfig的updateLog部分中有无效参数 默认的solrconfig.xml在updateLog中包含以下内容:

<updateLog>
  <str name="dir">${solr.ulog.dir:}</str>
</updateLog>  

Solr在使用旧配置时指示使用它们(现在它可以使用):

<updateLog>
  <str name="dir">${solr.data.dir:}</str>
</updateLog>

建议阅读本文并仔细考虑所有细节:

https://cwiki.apache.org/confluence/display/solr/SolrCloud+with+Legacy+Configuration+Files