16

나는 Elasticsearch-1.1.0을 사용하여 트윗을 색인화했습니다. 색인 생성 프로세스가 정상입니다. 그런 다음 버전을 업그레이드했습니다. 지금은 Elasticsearch-1.3.2를 사용하고, 나는 무작위이 메시지 : 임의성의수정하는 방법 Elasticsearch에서 시간 초과 읽기

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)). 

스냅 샷 :

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 

누군가가 Read timed out 문제를 해결하는 방법에 대한 지적 할 수 있습니까?

대단히 감사합니다.

답변

13

당신의보고가 사용중인 클라이언트와 관련이있을 수 있기 때문에 직접적인 대답을하기가 어렵습니다. 그러나 솔루션은 다음 중 하나 일 수 있습니다.

1. 시간 초과 매개 변수를 전달하여 ES 클라이언트를 만들 때 전역 기본 시간 초과를 늘리십시오. Python의 예제

es = Elasticsearch(timeout=30) 

2. 클라이언트가 요청한 시간마다 설정하십시오. 아래 Elasticsearch Python 문서에서 가져온 것입니다.

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

위는 클러스터를

+1

비슷한 문제가 있으며 타임 아웃이 60 초로 증가했지만 여전히 타임 아웃이 발생합니다. 나는 탄성 검색이 너무 오랫동안 반응하는 이유는 무엇이라고 생각합니까? – digitaldavenyc

+0

다양한 이유에 따라 달라집니다. 적절한 지표가 있습니까? 새 질문을 게시해야 할 수도 있습니다. – Skillachie

+2

근본 원인에 대해 게시 된 새로운 질문이 있습니까? 나는 똑같은 문제를 겪고 있으며, 탄성 견인력의 근본 원인이 무엇인지 궁금해합니다. – Suanmeiguo

13

이 시도 응답하는 몇 가지 여분의 시간을 줄 것이다 :

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

그것은 완전히 ReadTimeoutError을 피하지 않을 수도 있지만 그들을 minimalize.

0

가치가있는 부분에 대해 이것이 깨진 색인 상태와 관련이있는 것으로 나타났습니다.

이 문제를 안정적으로 재현하는 것은 매우 어렵지만 여러 번 보았습니다. 주기적으로 ES를 정지시키는 것처럼 보이는 특정 작업 (특히 보이는 인덱스 새로 고침)을 제외하고 정상적으로 작동합니다.

인덱스 (curl -XDELETE http://localhost:9200/foo)를 삭제하고 처음부터 다시 인덱싱하면 나를 위해이 문제가 해결되었습니다.

이 동작이 나타나는 경우 주기적으로 지우기 및 다시 인덱싱하는 것이 좋습니다.