[ 엘라스틱서치] HTTP content length exceeded 104857600 bytes.
엘라스틱 서치 bulk index 를 하다 아래와 같이 에러가 나면서 색인이 되지 않았을 경우
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을 열어 아래 부분을 주석을 풀고 자신이 원하는 사이즈대로 수정해 주면 된다.
#
#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]