가동 중지 시간없이 런타임에 elasticsearch 클러스터에서 노드를 제거하는 방법
클러스터에 5 개의 노드가 있고 런타임에 2 개의 노드를 제거해야한다고 가정합니다. 그렇다면 인덱스에 영향을주지 않고 어떻게 할 수 있습니까?
나는 거의 10Gbphour로 지속적으로 인덱싱되는 데이터 스트림을 가졌습니다.
재조정이 이것에 도움이 될까요? 미리 감사드립니다
할당에서 제외하도록 클러스터에 지시하여 노드를 해제 할 수 있습니다. ( 여기 문서 에서 )
curl -XPUT localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}';echo
이렇게하면 Elasticsearch가 클러스터 상태가 노란색 또는 빨간색으로 변경되지 않고 해당 노드의 샤드를 나머지 노드에 할당합니다 (복제 0이 있더라도).
모든 샤드가 재 할당되면 노드를 종료하고 필요한 모든 작업을 수행 할 수 있습니다. 완료되면 할당 할 노드를 포함하면 Elasticsearch가 샤드의 균형을 다시 조정합니다.
클러스터에서 elasticsearch 노드를 제거하려면 다음 명령을 실행하십시오.
curl -XPUT P.P.P.P:9200/_cluster/settings -H 'Content-Type: application/json' -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "X.X.X.X"
}
}';echo
다음 P.P.P.P
은 마스터 노드의 비공개 IP입니다 . localhost
Elasticsearch가 .NET에서 실행중인 경우 사용할 수도 있습니다 localhost
. X.X.X.X
클러스터에서 제거 할 노드의 개인 IP입니다.
이 명령은 acknowledgement
true
노드 제거가 승인되고 데이터 재배치가 시작되는지 여부 를 제공 합니다. 데이터 재배치가 끝났고 노드에 elasticsearch
프로세스와 stop/terminate
인스턴스를 중지 하는 것보다 조각이 남아 있지 않은지 확인하십시오 . 데이터 재배치 및 남은 샤드를 확인하는 명령은 이 문서 에서 찾을 수 있습니다 .
'Programing' 카테고리의 다른 글
Java의 일부 문자열에 대해 참조 비교 (==)가 작동하는 이유는 무엇입니까? (0) | 2020.12.04 |
---|---|
몇 분 전에 액세스 / 생성 된 파일을 찾는 방법 (0) | 2020.12.04 |
앱 아카이브 유효성 검사 또는 제출시 Xcode 6 충돌 (0) | 2020.12.04 |
R에서 함수 곡선을 그리는 방법 (0) | 2020.12.04 |
std :: unique_ptr을 함수에 어떻게 전달할 수 있습니까? (0) | 2020.12.04 |