gpt4 book ai didi

apache-spark - Elasticsearch 集群大小/架构

转载 作者:行者123 更新时间:2023-12-02 22:45:58 25 4
gpt4 key购买 nike

我一直在尝试设置一个 Elasticsearch 集群来处理来自一些 3D 打印机的一些日志数据。
我们每天为 20 台机器生成超过 850K 的文档。他们每个人都有自己的索引。

现在我们有 16 个月的数据,在每个 elasticsearch 索引中索引了大约 410M 记录。
我们正在使用 spark 处理来自 CSV 文件的数据,并写入一个包含 3 台机器的 Elasticsearch 集群,每台机器都有 16GB 的 RAM 和 16 个 CPU 内核。
但是每次我们达到大约 10-14M 文档/索引时,我们都会遇到网络错误。
Job aborted due to stage failure: Task 173 in stage 9.0 failed 4 times, most recent failure: Lost task 173.3 in stage 9.0 (TID 17160, wn21-xxxxxxx.ax.internal.cloudapp.net, executor 3): org.elasticsearch.hadoop.rest.EsHadoopNoNodesLeftException: Connection error (check network and/or proxy settings)- all nodes failed; tried [[X.X.X.X:9200]]

我确定这不是网络错误,只是 Elasticsearch 无法处理更多索引请求。

为了解决这个问题,我尝试调整许多 Elasticsearch 参数,例如:refresh_interval加快索引并消除错误但没有任何效果。在监控集群之后,我们认为我们应该扩大规模。

我们还尝试调整 elasticsearch spark 连接器,但没有结果。

所以我正在寻找一种选择集群大小的正确方法?是否有关于如何选择集群大小的指南?任何亮点都会有所帮助。

注意:我们主要对索引数据感兴趣,因为我们只有一两个查询可以在数据上运行以获得一些指标。

最佳答案

我会首先尝试按月(甚至一天)拆分索引,然后搜索索引模式。示例:sensor_data_2018.01、sensor_data_2018.02、sensor_data_2018.03 等。并使用 sensor_data_* 的索引模式进行搜索

一些会影响您需要的集群大小的因素是:

  • 有多少文件
  • 每个文档的平均大小
  • 每秒有多少条消息被索引
  • 磁盘IO速度

  • 我认为您的集群应该足以处理这么多数据。我们有一个包含 3 个节点(每个节点 8CPU/61GB RAM)、约 670 个索引、约 30 亿个文档、约 3TB 数据的集群,并且只有在索引速度超过 30,000 个文档/秒时才会出现索引问题。即使这样,也只有少数文档的索引会失败,并且可以在短暂的延迟后成功重试。我们的实现也非常繁重,实际搜索最少。

    我会检查 Elasticsearch 服务器日志,看看是否能找到更详细的错误消息。可能寻找 RejectedExecutionException 的。另请查看 cluster healthnode stats当您开始收到故障时,可能会更清楚地了解正在发生的事情。如果可能,在故障开始发生时实现重试和退避,以使 ES 有时间 catch 负载。

    希望那有所帮助!

    关于apache-spark - Elasticsearch 集群大小/架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50821568/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com