Elasticsearch

[Elasticsearch] Elasticsearch Cluster, Node

데이터 세상 2022. 1. 15. 15:02

출처:https://victorydntmd.tistory.com/311

Elasticsearch Cluster

물리적인 노드 인스턴스들의 모임

모든 노트의 검색과 색인 작업을 관장하는 논리적인 개념

분산 처리를 위해서는 다양한 형태이 노드들을 조합해서 클러스터를 구성해야 한다.

Elasticsearch Node

Elasticsearch를 구성하는 하나의 단위 프로세스

Master Node

클러스터를 관리, 노드 추가와 제거 같은 클러스터의 전반적인 관리를 담당

인덱스를 생성, 삭제하는 등 클러스터와 관련된 전반적인 작업을 담

네트워크 속도가 빠르고 지연이 없는 노드를 마스터 노드로 선정해야 한다.

노드를 마스터 노드 전용으로 설정하고자 하는 경우 conf 폴더의 elasticsearch.yml 파일의 설정을 다음과 같이 한다.

node.master: true
node.data: false
node.ingest: false
search.remote.connect: false

장애가 발생하면 마스터 노드는 데이터를 재분배하거나 레플리카 샤드(replica shard)를 primary 샤드로 승격시켜 서비스 중단 없는 복구가 가능해진다.

failover 상황을 염두에 두고 노드와 샤드의 수를 적절히 구성해야 한다. 

Data Node

실질적인 데이터(문서)가 저장되는 노드

데이터가 실제로 분산 저장되는 물리적 공간인 샤드가 배치되는 노드

검색과 통계 같은 데이터 관련 작업을 수행

데이터 노드는 가능한 마스터 노드와 분리해서 구성하는 것이 좋다

node.master: false
node.data: true
node.ingest: false
search.remote.connect: false

코디네이팅 노드(Coordinating Node)

사용자의 요청만 받아서 처리

클러스터 관련 요청은 마스터 노드에 전달하고 데이터 관련 요청은 데이터 노드에 전달

들어온 요청을 단순히 라운드로빈 방식으로 분산시켜주는 노드

node.master: false
node.data: false
node.ingest: false
search.remote.connect: false

인제스트 노드(Ingest Node)

색인에 앞서 데이터(문서)의 전처리 작업을 담당

인덱스 생성 전 문서의 형식을 다양하게 변경할 수 있다. (스크립트로 전처리 파이프라인 구성)

node.master: false
node.data: false
node.ingest: true
search.remote.connect: false

 

 


References

반응형