【问题标题】:setting up a basic elasticsearch cluster建立一个基本的弹性搜索集群
【发布时间】:2018-08-20 05:55:45
【问题描述】:

我是 elasticsearch 新手,希望有人帮我澄清一些概念

我正在设计一个具有以下要求的小型集群

  • 每次重启一台机器时,一切都应该正常工作(例如:操作系统更新)
  • 单盘故障即可
  • 大量索引不应影响查询性能

我应该有多少个主节点、数据节点、摄取节点? 还是我需要 2 个集群?

索引工作量纯粹是索引结构化文本文档,没有处理/规则...我什至需要摄取节点吗?

另外,每个节点是否都有所有数据的完整副本?还是只有一个集群有完整的副本?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:
    1. 请务必至少阅读有关 Elasticsearch terminology 的文档。
    2. 使用默认的 1 个副本(主分片和一个副本分片),您可以在 1 个 Elasticsearch 节点故障(磁盘故障、重启、升级...)中幸存下来。
    3. “大量索引不应影响查询性能”:您需要正确调整集群大小以处理索引和搜索。如果您想读取当前数据并进行大量更新,则会占用资源并且您将无法完全解耦。
    4. 默认情况下,每个节点都是数据、摄取和主节点。最低 HA 设置需要 3 个节点。如果您不使用摄取,那很好;不使用时不会占用资源。
    5. 要了解哪个节点有哪些数据,您需要阅读分片的概念。基本上每个索引都被分成 1 到 N 个分片(当前默认为 5 个),并且每个分片都有一个主副本和一个副本副本(默认情况下)。

    【讨论】:

    • 我已经阅读了网络上的文档和文章,但仍有一些问题。为了用最少的机器实现我所描述的,我之前的理解是我需要在同一个集群中的 2 个节点,每个节点都有(主分片和副本分片。数据将在每个节点中拆分 50%?)。但是,我在某处读到这会造成脑裂情况,并且当其中一个节点关闭时数据可能会损坏。 3个节点,每个节点只得到33%?我是否需要指定每个索引所在的位置以及是否自动处理?
    • 是的,对于master选举,你需要3个master-eligible节点,这样你就可以避免脑裂的情况(通过将最小master节点设置为大多数合格节点,即2 out 3)。所以最小的高可用集群需要有 3 个节点。默认情况下,分片将均匀分布在您的所有节点上。虽然您可以影响这一点,但对于这么小的设置可能没有意义,而且您很有可能会使其比默认的分片分配更差。
    • 所以 1 个集群在默认设置下具有 3 个节点(5 个主分片和 5 个副本分片),应该允许我一次重新启动一个节点而不会丢失任何数据并且一切都会继续工作吗?
    • 或者我应该将它们更改为 3 个主分片和 3 个副本分片以用于 3 节点集群?
    • 主分片的数量不会真正影响弹性。通常不要过度分片,因为这会耗费大量资源。如果你有几个索引,你可以使用 1 个主分片和 1 的复制因子(所以 1 个主分片和一个副本分片)。然后,它将在 1 个节点的故障中幸存下来。如果您没有太多数据并且想要更高的弹性或搜索性能,您还可以使用 1 个主分片和 2 的复制因子;那么每个节点都会保存一个完整的副本。
    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多