【问题标题】:elasticsearch cluster setup informationelasticsearch集群设置信息
【发布时间】:2014-10-02 02:43:59
【问题描述】:

我是搜索和弹性搜索的新手。我已经查看了一些在线文档,并在我们的测试环境中使用 elasticsearch 设置开发了一些应用程序。到目前为止,它的开发和测试顺利,现在在生产中创建并设置集群,我需要一些专家建议,

  1. 分片数
  2. 副本数
  3. 我是否需要分离主节点和数据节点
  4. 所有节点都可以是数据节点吗
  5. 我没有任何高级搜索用例,但至少需要复数匹配(电话)应该将所有文档与电话匹配,反之亦然,在这种情况下是否需要任何特殊的词干提取?

我的用例和流量模式是,

  1. 每天读取高达 100M
  2. 每天最多 100 万次写入/更新
  3. 初始数据大小 10GB,每 6 个月增长 1 GB

集群信息 1. 初始集群大小 14 台机器,28 GB RAM / 120 GB 旋转硬盘 / 12 核 2. 带 dns 的负载均衡器,将流量分配到任意 14 台机器。

我使用过单播,并且我有 bootstrap.mlockall: true 和 index.routing.allocation.disable_allocation: false

请指教。

谢谢

【问题讨论】:

  • 我也在等待专家的建议

标签: elasticsearch


【解决方案1】:

1.分片数

Elasticsearch 中的分片数量是一次性设置的,一旦设置了分片大小,就无法更改。因此,您需要在考虑当前数据集大小以及任何索引增长的情况下规划集群需要多少分片。为此,请在与您的生产盒子具有相同规格的盒子上设置一个具有一个分片和零副本的 Elasticsearch 节点。

单个分片的容量取决于多种因素:

  • 文档的大小

  • 字段的大小

  • 分配给运行 Elasticsearch 的 JVM 的 RAM 量。如果你有很多聚合, 排序和父/子文档,您需要确保分配了足够的 RAM 到 Elasticsearch,以便它可以缓存结果。

  • 您的每秒查询数要求。

  • 允许的最大搜索请求响应时间。

以 x 百万次(或更少)的迭代将文档索引到您的单个分片节点中,在每次迭代时,使用 JMeter 之类的测试工具每秒执行 x 次查询来执行基准测试。当您的测试中的查询返回的响应时间达到您的最大搜索请求时间时,您拥有单个分片可以索引的文档数量。获得此值后,您可以计算完整数据集所需的分片数,并计算索引增长所需的分片数。

2。副本数

从 1 个副本开始,副本分片将放置在与其主分片不同的节点上,因此如果一个节点出现故障,您仍然可以使用完整的数据集。一个副本通常就足够了,如果您发现需要更多副本,您可以随时添加它们。

3.是否需要分离主节点和数据节点

这取决于您的集群的大小,如果您的集群中有超过 5 个节点,建议只有主节点来维护集群状态。

4.所有节点都可以是数据节点吗

您的集群中必须始终至少有一个主节点,主节点维护集群状态。如果您有一个小型集群(

5.我没有任何高级搜索用例,但至少需要复数匹配(电话)应该将所有文档与电话匹配,反之亦然,在这种情况下是否需要任何特殊的词干提取?

是的,词干提取将处理您的用例。

此外,Elasticsearch 带有非常好的配置 OOTB,您应该首先更改下面链接中列出的配置。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_important_configuration_changes.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多