elasticsearch es_rejected_execution_exception

标签 elasticsearch logstash elastic-stack

我正在尝试索引一个有 50,000 条日志的 12mb 日志文件。
索引大约 30,000 条日志后,出现以下错误

[2018-04-17T05:52:48,254][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 429 ({"type"=>"es_rejected_execution_exception", "reason"=>"rejected execution of org.elasticsearch.transport.TransportService$7@560f63a9 on EsThreadPoolExecutor[name = EC2AMAZ-1763048/bulk, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@7d6ae98b[Running, pool size = 2, active threads = 2, queued tasks = 200, completed tasks = 3834]]"})

但是,我浏览了文档和 elasticsearch 论坛,它们建议我增加 elasticsearch 批量队列的大小。我尝试使用 curl 但我无法做到这一点。
curl -XPUT localhost:9200/_cluster/settings -d '{"persistent" : {"threadpool.bulk.queue_size" : 100}}'

增加队列大小是个好选择吗?我无法增加硬件,因为我的数据较少。

我面临的错误是由于队列大小问题还是其他原因?如果使用队列大小如何更新elasticsearch.yml中的队列大小,在el​​asticsearch.yml中更新后是否需要重新启动es?

请告诉我。谢谢你的时间

最佳答案

一旦您的索引无法跟上索引请求 - elasticsearch 将它们排入 threadpool.bulk.queue 并在队列中的请求数量超过 threadpool.bulk.queue_size 时开始拒绝

考虑限制您的索引是个好主意。线程池大小默认值通常很好;虽然您可以增加它们,但您可能没有足够的可用资源(内存、CPU)。

blogpost来自elastic.co 很好地解释了这个问题。

关于elasticsearch es_rejected_execution_exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49873853/

相关文章:

logstash grok 捕获重复模式

elasticsearch - 通过电子邮件自动生成和发送kibana仪表板报告

elasticsearch - 如何按 Docker 实例对 Elastic Stack 警报进行分组?

elasticsearch - 在ElasticSearch Java APi中组合QueryParameters

elasticsearch - Elasticsearch Nest Top Hits 聚合

ElasticSearch:我可以查询 .raw 字段吗?

java - 我们如何验证运行 ElasticSearch 的堆大小

Elasticsearch:将 match_phrase 和 match 结合起来,以便仅获取 match_phrase 的结果(如果有)

ssl - 如何在 logstash 配置中禁用 SSL?

elasticsearch - elasticsearch 中的新索引中的映射是如何确定的