elasticsearch timeout connection-timeout timeoutexception executiontimeout

Cómo arreglar el tiempo de espera agotado en Elasticsearch



timeout connection-timeout (3)

Es difícil dar una respuesta directa ya que el error que está viendo puede estar asociado con el cliente que está utilizando. Sin embargo, una solución podría ser una de las siguientes:

1. Aumente el tiempo de espera predeterminado de forma global cuando cree el cliente ES pasando el parámetro de tiempo de espera. Ejemplo en Python

es = Elasticsearch(timeout=30)

2.Configure el tiempo de espera por solicitud realizado por el cliente. Tomado de Elasticsearch Python documentos a continuación.

# only wait for 1 second, regardless of the client''s default es.cluster.health(wait_for_status=''yellow'', request_timeout=1)

Lo anterior le dará al clúster un tiempo extra para responder.

Utilicé Elasticsearch-1.1.0 para indexar tweets. El proceso de indexación está bien. Luego actualicé la versión. Ahora uso Elasticsearch-1.3.2, y recibo este mensaje al azar:

Exception happened: Error raised when there was an exception while talking to ES. ConnectionError(HTTPConnectionPool(host=''127.0.0.1'', port=8001): Read timed out. (read timeout=10)) caused by: ReadTimeoutError(HTTPConnectionPool(host=''127.0.0.1'', port=8001): Read timed out. (read timeout=10)).

Instantánea de la aleatoriedad:

Happened --33s-- Happened --27s-- Happened --22s-- Happened --10s-- Happened --39s-- Happened --25s-- Happened --36s-- Happened --38s-- Happened --19s-- Happened --09s-- Happened --33s-- Happened --16s-- Happened --XXs-- = after XX seconds

¿Alguien puede indicar cómo solucionar el problema del Read timed out ?

Muchas gracias.


Para lo que vale, encontré que esto parece estar relacionado con un estado de índice roto.

Es muy difícil recrear este problema de manera confiable, pero lo he visto varias veces; las operaciones se ejecutan normalmente, excepto ciertas que periódicamente parecen bloquear el ES (específicamente, al parecer, se actualiza un índice).

Eliminar un índice ( curl -XDELETE http://localhost:9200/foo ) y reindexar desde cero lo solucioné.

Recomiendo borrar periódicamente y reindexar si ve este comportamiento.


Prueba esto:

es = Elasticsearch(timeout=30, max_retries=10, retry_on_timeout=True)

Puede que no evite completamente ReadTimeoutError , pero los minimiza.