[ 엘라스틱서치] HTTP content length exceeded 104857600 bytes.

 

 

 

엘라스틱 서치 bulk index 를 하다 아래와 같이 에러가 나면서 색인이 되지 않았을 경우

 

#vi elasticsearch.log

 

org.elasticsearch.common.netty.handler.codec.frame.TooLongFrameException: HTTP content length exceeded 104857600 bytes.
        at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:169)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)

 

 

 

conf/elasticsearch.yml을 열어 아래 부분을 주석을 풀고 자신이 원하는 사이즈대로 수정해 주면 된다.

 

# Set a custom allowed content length:
#
#http.max_content_length: 100mb

 

 

 

예시 ) 1024mb로 사이즈 증가시킴


# Set a custom allowed content length:
#

http.max_content_length: 1024mb


http.max_content_length 는 HTTP request로 처리할 수 있는 최대 값이고 기본적으로 100mb으로 설정되어 있다.

 색인하려고 하는 bulk index 파일 사이즈보다 큰 값을 설정하고  elasticsearch를 재시작하면 반영 완료.


참고로 설정할수 있는 값은 최대 2기가이며 2기가 이상의 값을 설정하면 

로그에 아래와 같은 메세지가 찍히면서 변경값이 적용이 되지 않는다. 


[2015-07-23 00:21:16,350][WARN ][http.netty               ] [Magdalena] maxContentLength[2.9gb] set to high value, resetting it to [100mb]