반응형
문제
RequestError(400, 'validation_exception', 'Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open;')
가끔 elasticsearch를 사용할 때 종종 발생했던 문제인데 opensearch를 사용할 때도 또 만나서 정리..
원인
- 이 에러는 Elasticsearch /Opensearch 클러스터가 설정된 최대 샤드 개수를 초과하려고 할 때 발생한다. 각 인덱스는 여러개의 샤드로 분할되고, 클러스터 전체에서 허용되는 최대 샤드 수가 설정된다. 현재 1000개의 샤드가 설정되어있고, 999개의 샤드가 열려있어 새로운 인덱스 또는 샤드를 추가하는 요청이 거부되었다.
해결 방안
1. 샤드 개수 줄이기 : 이미 존재하는 인덱스의 샤드 수를 줄이는 방법, 인덱스를 재인덱싱 하거나 필요없는 인덱스를 삭제하는 등의 작업을 수행해야 한다.
2. 클러스터에 최대 샤드 수 늘리기 : 클러스터 설정을 변경하여 해결. 메모리 디스크롤 고려햐아함. 샤드를 너무 많이 늘리면 성능 이슈가 발생할 수 있다.
ex. 키바나에서 최대 샤드 개수를 아래와 같이 3000개로 늘릴 수 있다.
PUT /_cluster/settings
{ "persistent": { "cluster.max_shards_per_node": "3000" } }
3. 기존 인덱스 또는 샤드 삭제 : 신중하게 해야함
반응형
'공부기록 > Data Engineering' 카테고리의 다른 글
[elasticsearch] elasticsearch 10000개 이상 데이터 조회 python (0) | 2022.06.15 |
---|---|
[Docker] Docker Compose로 Django 프로젝트 세팅 (0) | 2022.05.01 |
[PostgreSQL] macOS에 PostgreSQL 설치 및 설정 (2) | 2022.05.01 |
[ELK] elastic stack 이란 / 개념 / 구성 요소 / 용도 (0) | 2022.04.23 |
[neo4j] variables 변수 이해하기 (0) | 2021.06.05 |