上载时Elasticsearch批量插入异常

时间:2019-07-02 04:29:57

标签: 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

1 个答案:

答案 0 :(得分:1)

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

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

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

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