首页 > 解决方案 > 写入 Elasticsearch 时出错,无法从数据流中插入某些元素

问题描述

elasticsearch 版本 6.8.5
ElasticsearchIO 2.15.0
数据流版本 2.15.0

我的集群中有 3 个节点,在同一台机器上我有 gcp 中的实例,有 6 个内核和 16GB 的 ram 我为每个节点设置了 4gb

我有 5 个索引,每个索引 2 个分片 2 个副本

数据流在2分钟内向elasticsearch发送总共2K条记录到每个索引总共10K条记录

并将下一个错误发送给我

java.io.IOException: Error writing to Elasticsearch, some elements could not be inserted:
Document id jnlmbW8BnhRHn7hU2cLS: rejected execution of processing of [10948][indices:data/write/bulk[s][p]]: request: BulkShardRequest [[indexname][0]] containing [3] requests, target allocation id: M40WguEMSTmWedf2c6LuAg, primary term: 1 on EsThreadPoolExecutor[name = C2JZ4zA/write, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@51a06c32[Running, pool size = 6, active threads = 6, queued tasks = 224, completed tasks = 1026]] (es_rejected_execution_exception)

我检查了elasticsearch中缺少的结果和记录,
例如处理1850条记录,而在elasticsearch中有1800条任何想法?

标签: javaelasticsearchgoogle-cloud-dataflow

解决方案


这意味着您压倒了请求队列。您的队列已满,节点刚刚开始忽略新请求。您可以尝试增加队列的大小,如您在此处看到 的 如果增加队列大小不起作用,您必须增加处理能力(通过添加新节点或改进现有节点)或减少请求的数量一段的时间。首先,我建议您监视您的节点并注意发生了什么。

我希望它对你有帮助。


推荐阅读