【问题标题】:Fastest way to index huge data in elastic在弹性中索引海量数据的最快方法
【发布时间】:2018-10-14 06:48:19
【问题描述】:

我被要求将超过 3*10^12 个文档索引到弹性集群中,该集群有 50 个节点,40 个核心,128G 内存。 我可以用 python 语言(多线程)中的 _bulk 来做到这一点,但我无法达到一个节点每秒超过 50,000 条记录。

所以我想知道:

  1. 索引数据的最快方法是什么?
  2. 据我所知,我可以将数据索引到每个数据节点,它会线性增长吗?我的意思是每个节点可以有 50,000 条记录?

【问题讨论】:

  • 禁用副本,将​​其设置为 0 并在摄取完成后进行替换。另请参阅索引速度优化的弹性文档

标签: elasticsearch


【解决方案1】:

根据您的问题:

  1. 平衡您的资源。 Elasticsearch 和您的应用程序都需要尝试以 60-80% 的服务器利用率运行,以实现最佳性能。您可以通过在 python 或 Unix xargs + Elasticsearch _bulk API 中使用 Multiple Processing 从应用程序端实现此利用。

  2. 根据我的经验,Elasticsearch 性能几乎呈线性增长 99%。如果您的集群/索引分片设置设计正确。 50,000 records/second 每个节点都是可以的。

以下是一些有用的链接:

建议进行性能测试,然后在工作负载期间密切监控您的集群 + 应用服务器。 (我使用了 unix htop + newrelic 组合:D)。

【讨论】:

猜你喜欢
  • 2014-09-04
  • 2015-12-05
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 2021-07-31
  • 2021-01-14
相关资源
最近更新 更多