Solr可以容忍一个碎片上所有核心的丢失吗?

时间:2016-11-04 21:17:23

标签: apache tomcat solr

我正在使用Solr 4.10.3并且有8个分片。 每个分片有1个前导和1个副本,因此总共有16个核心。 每个核心都在一个单独的VM上运行。

我的一个碎片核心已关闭。他们都是。 我该如何从中恢复? 我可以通过某些命令添加分片领导者吗?

我不想丢失数据。

2 个答案:

答案 0 :(得分:0)

每个碎片的至少一个副本应该可用。

让我们说shard1在node2(leader)和node3(replica)中。

  1. 如果node2关闭,则node3成为leader(zookeeper会处理此问题)。您仍然可以访问该分片中的所有文档。

  2. 如果node2和node3都关闭,则意味着无法访问shard1。
  3. 检查核心在日志中的原因。

    您无法通过某些命令添加分片领导者。 Zookeeper会跟踪哪些节点处于活动状态,哪些节点不处于活动状态。 shard领导者由Zookeeper选举产生。

答案 1 :(得分:0)

正如Vinod所提到的,如果有任何副本可用,你可以去,但如果不是,那么你必须重新启动节点,那么zookeeper将读取集群状态并将采取相应的行动。

我建议你始终将副本保留在另一个节点上,如果任何节点停止,则仍然可以处理查询。