【问题标题】:Fast indexing using multiple ES nodes?使用多个 ES 节点进行快速索引?
【发布时间】:2015-06-02 18:57:26
【问题描述】:

我阅读和理解的关于运行多个 ES 节点的全部内容是启用索引复制和扩展。我想知道它是否可以帮助我们更快地为大量文件建立索引。我有两个问题,它们如下:

问题 1:认为使用多个 ES 节点可以让我们更快地索引数倍是否准确?

问题2:如果我一直启用所有节点作为数据节点,它对索引有什么影响?另一方面,如果我的非数据节点很少(例如,一个专用主​​节点和一个专用客户端节点)而数据节点很少,它对索引有什么影响?在速度和扩展性方面哪个会更好?

【问题讨论】:

标签: java indexing elasticsearch lucene scalability


【解决方案1】:

答案1:没有。

如果启用复制,索引速度实际上会降低(尽管它可能会提高搜索性能)。您可以查看this question 以提高索引性能。

Answer2:视情况而定(如果没有副本则相同)。

在索引期间,数据将仅传输到数据节点。您的集群状态将包含有关哪些节点是数据节点的信息,并相应地路由请求。性能影响仅是因为接收请求的节点必须将请求重新路由/转发到数据节点

【讨论】:

    【解决方案2】:

    如果您在不增加副本数量的情况下添加机器,您将在索引期间获得更好的性能。这并不奇怪,因为您正在添加更多资源,而要完成的工作量几乎相同。

    在我们的环境中,我们在生产中使用 20 个节点,在调试中使用 5-10 个节点。两种环境都拥有相同的数据量。由于 ES 更新速度(我们使用 groovy 脚本将新文档合并到现有文档)是我们的主要瓶颈,因此我们能够在生产环境中看到比其他环境更好的性能。

    您已经在问题的其他答案中获得了一些有用的链接。我可以补充一点,在我们的案例中,数据上传改进的 3 个最重要的因素是:减少 refresh_interval、增加 merge_factor 和使用 Elastic-Hadoop 插件(我们从 Spark 上传数据)处理应用程序上的所有主要数据传输优化水平。

    • 这些步骤中的每一个都有自己的缺点,因此在更改配置之前请仔细阅读手册。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2012-02-25
      • 2020-10-19
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2013-10-30
      相关资源
      最近更新 更多