如果ElasticSearch节点/索引/分片被破坏会发生什么

时间:2016-04-02 19:33:28

标签: elasticsearch

我是ES的新手。我们最近为Prod App设置了一个3节点的弹性搜索集群。只是想了解如果ElasticSearch节点或索引或分片被破坏会发生什么。

谢谢!

2 个答案:

答案 0 :(得分:2)

实际发生的情况取决于您如何设置ES群集。

关于DATA

  • 如果您有singular cluster,则损坏会导致您的ES设置失效。您几乎需要从头开始设置所有内容。
  • 如果您有multiple nodes in your cluster,可能会有以下情况 -
    • 如果您配置了single node as data node,如果这种情况发生故障,您将使群集运行,但查询不会返回任何结果。然后,您需要重新配置节点以充当数据节点并重新启动集群。
    • 如果您有multiple nodes designated as data node,那么节点的损坏/失败只会影响该节点。其余的节点和ES实际上将照常执行。唯一的影响是存储在损坏节点中的数据显然不可用。损坏的节点中的分片将成为未分配的分片,必须重新分配给其他数据节点。
    • 如果您启用了replicas,那么在数据丢失方面就没有任何影响。它只需要将未分配的分片重新分配给某个新的数据节点(如果添加它的话)。

最好有一个多节点集群,其中至少启用了2个数据节点和副本,以减少碎片/数据节点损坏。

此Stackoverflow post以极好的方式解释了分片和副本。

编辑1: 这是对你的评论的回应。

默认设置规定每个节点都符合主要条件,并且还存储数据,因此,每个节点都可以成为主节点,也可以存储数据。

让我们将节点视为A,B& C。 最初,其中一个将被指定为主节点,例如。节点A.

现在,如果节点A发生故障,其余节点(B& C)中的一个将成为主节点。查询现在只返回存储在节点B和B中的数据的结果。下进行。

查看此page,了解群集的工作原理

答案 1 :(得分:0)

一种方法是您需要获取索引的增量快照,并需要从该快照中恢复。