在Elastic中索引海量数据的最快方法

时间:2018-10-14 06:48:20

标签: elasticsearch

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

所以我想知道:

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

1 个答案:

答案 0 :(得分:2)

根据您的问题:

  1. 平衡您的资源。为了获得最佳性能,Elasticsearch和您的应用程序都需要尝试以服务器利用率的60-80%运行。您可以通过在python或Unix xargs + Elasticsearch _bulk API中使用多重处理,从应用程序一侧实现这种利用。

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

以下一些有用的链接将对您有所帮助:

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

相关问题