弹性搜索:在没有未分配的分片问题的情况下重新启动群集的正确方法

时间:2014-04-10 04:43:15

标签: deployment elasticsearch

我有4个节点& 5个分片弹性搜索(0.90.3)群集。重新启动时,我看到5个分片中有4个未分配,群集状态为红色。所以我假设它重新启动的方式不对。每个节点在30秒间隔内发出一个kill(SIGKILL)命令。意味着某个节点被杀死了,30秒后其他3个节点中的其他节点被杀死了。等等。

我尝试this解决方案重新分配了分片,但在我使用this方法手动将主分片分配到群集之前,没有任何工作。但手动分配主分片会重置分片的数据,从而导致丢失。

如何避免陷入未分配的分片问题?如果我遇到这个问题,那么在没有数据丢失的情况下恢复的方法是什么?

1 个答案:

答案 0 :(得分:2)

重新启动群集的正确方法是使用rolling restart执行shutdown API

这适用于:

  1. 禁用分片分配
  2. 重新启动一个节点(群集变黄)
  3. 等到它重新加入群集
  4. 重新启用分片分配
  5. 等到重新分配分片(群集变绿)
  6. 在其他节点上重复。
  7. 您可能希望增加indices.recovery.max_bytes_per_seccluster.routing.allocation.node_concurrent_recoveries以加快步骤5.虽然群集为黄色,但某些分片将被取消分配(因为它们位于重新启动的节点上),但是这样不是问题。读取和写入仍然可以正常工作。