我是ES的新手。我们最近为Prod App设置了一个3节点的弹性搜索集群。只是想了解如果ElasticSearch节点或索引或分片被破坏会发生什么。
谢谢!
答案 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)
一种方法是您需要获取索引的增量快照,并需要从该快照中恢复。