我有一个四节点ElasticSearch集群。在我将大约100G数据插入集群后,我重新启动集群。我发现它需要花费大量时间来恢复分片。我注意到:
当我重新启动群集时,为什么我的分片会再次复制,我的节点中的原始副本数据在哪里?我很困惑?
我读过一些相关问题,例如:
quick recovery after node restart in elasticsearch
https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-synced-flush.html
但它没有用,我可以在第一次重新启动群集时停止跨节点的分片迁移吗?
答案 0 :(得分:2)
复制品恢复缓慢是可以的。恢复主分片后,群集可用并且应为黄色。它可以接受查询,并为此提供优先级,限制其他操作,如编写副本。
您引用的两个链接很有帮助。当一个节点消失时,集群认为它已经坏了并开始像疯了一样重新洗牌。当节点短暂重启或稍晚时,这没有意义。在这些情况下,设置和禁用分配会有所帮助。此外,较新的版本稍稍等待(https://www.elastic.co/guide/en/elasticsearch/reference/current/delayed-allocation.html)。
有关同步刷新的链接也很好。这意味着更快地重建副本。根据我的经验,它的速度并不快。