elasticsearch - 上载时Elasticsearch批量插入异常

标签 elasticsearch elasticsearch-bulk

尝试批量插入elasticsearch v6.6.0时出现异常。

早些时候还好。

这是异常消息:

Elasticsearch bulk insert exception, TransportError(503, 'circuit_breaking_exception', '[parent] Data too large, data for [<http_request>] would be [746384154/711.8mb], which is larger than the limit of [745517875/710.9mb], usages [request=0/0b, fielddata=626151547/597.1mb, in_flight_requests=889937/869kb, accounting=119342670/113.8mb]')

如何配置数据限制?因为异常是声明data too large, than the limit

最佳答案

断路器是一种防止OutOfMemory异常的机制。它设置为堆的70%。
https://www.elastic.co/guide/en/elasticsearch/reference/current/circuit-breaker.html

我不建议增加断路器的限制,因为您将收到OOM异常。显然,字段数据导致堆(内存)已满。
一些解决方案:

  • 增加堆大小。
  • 使用doc值代替字段数据。
  • 清除字段数据缓存(例如每小时)。

  • 在某些版本的elastic(我认为是6.3)中,存在有关断路器的错误,并且在更新后,问题得以解决。

    关于elasticsearch - 上载时Elasticsearch批量插入异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845347/

    相关文章:

    algorithm - 使用 ElasticSearch 进行模糊重复搜索

    elasticsearch - 搜索时从Elasticsearch中排除空格

    elasticsearch - ElasticSearch无法识别定义了编码的Context-Type header

    rest - Elasticsearch中第一个节点的父级规范

    elasticsearch - Elasticsearch,仅索引第一个和最后一个字母, 'abc' => 'a' 'c'

    elasticsearch - 创建索引时出现Elasticsearch错误

    elasticsearch - 使用批量API将批处理上传到Elasticsearch存储中

    json - 在上传到 Elasticsearch 之前为每个文档插入标题

    elasticsearch - 如何划分两个领域并求平均值