BigData/ElasticSearch

Elasticsearch 노드의 종류와 역할 (feat 동작 흐름)

kih5893 2023. 3. 22. 23:42

Elasticsearch는 분산형 검색 및 분석 엔진으로, 여러 노드로 구성된 클러스터로 동작합니다. 이러한 노드들은 각자 다양한 역할을 수행하며, 클러스터의 전체적인 성능과 안정성에 기여합니다. 

 

 

1. Master 노드

Master 노드는 클러스터의 관리와 조정을 담당하는 노드입니다. 클러스터 내의 모든 노드는 Master 노드를 통해 연결되며, Master 노드는 클러스터의 상태를 관리하고 변경 사항을 전파합니다. 주요 역할은 다음과 같습니다:

√ 클러스터 상태 관리
√ 노드 추가 및 제거 조정
√ 샤드 할당 및 재할당

 

node.master: true
node.data: false
node.ingest: false
cluster.initial_master_nodes: ["node-1"] # 이 노드의 이름을 기입하세요.

 

2. Data 노드

Data 노드는 실제 데이터를 저장하고 처리하는 노드입니다. 인덱스의 샤드들이 Data 노드에 저장되며, 검색, 색인 생성, 수정, 삭제 등의 작업이 Data 노드에서 이루어집니다. 주요 역할은 다음과 같습니다:

 문서 저장 및 검색
 색인 작업 처리
 집계 및 분석 작업 수행

node.master: false
node.data: true
node.ingest: false


3. Ingest 노드

Ingest 노드는 문서를 색인하기 전에 데이터를 전처리하는 노드입니다. 이 노드에서는 파이프라인을 사용하여 데이터를 변환하고 가공할 수 있습니다. 주요 역할은 다음과 같습니다:

 데이터 전처리 및 변환
 파이프라인 처리

node.master: false
node.data: false
node.ingest: true


4. Coordinating 노드

Coordinating 노드는 클라이언트 요청을 수신하고 적절한 노드로 전달하는 역할을 합니다. 또한, 다양한 노드로부터 반환된 결과를 집계하고 최종 결과를 클라이언트에 반환합니다. 주요 역할은 다음과 같습니다:

 클라이언트 요청 수신 및 적절한 노드로 전달
 결과 집계 및 반환

node.master: false
node.data: false
node.ingest: false

 

 

★ Data Indexing 요청 시 노드 처리 순서

흐름: Coordinating Node → Ingest Node → Data Node

 

1. Coordinating 노드: 클라이언트로부터 인덱싱, 검색, 집계 등의 요청을 받습니다. 받은 요청을 적절한 노드로 전달하고, 응답을 모아 클라이언트에 반환하는 작업을 수행합니다.

2. Ingest 노드: 코디네이팅 노드로부터 인덱싱 작업을 받으면, 데이터를 전처리하고 문서를 색인하기 전에 파이프라인을 통해 변경 작업을 수행합니다. 전처리 작업이 완료되면 데이터 노드로 색인 작업을 전달합니다.

3. Data 노드: 인제스트 노드로부터 전처리된 데이터를 받아, 실제로 데이터를 색인하고 저장하는 작업을 수행합니다. 또한 데이터 노드는 검색, 집계 등의 쿼리를 처리합니다.

 

 

★ Coordinating 노드를 설정하지 않았을 경우

모든 노드는 Coordinating 역할을 수행할 수 있으므로 인덱싱을 요청받은 노드가 해당 역할을 수행하게 된다.

 

 

★ Ingest 노드를 설정하지 않았을 경우

Coordinating 노드가 Ingest 노드의 역할을 수행한다.

 

 

★ Coordinating, Ingest 노드를 모두 설정하지 않았을 경우

클라이언트로부터 요청을 받은 노드가 Coordinating, Ingest 노드의 역할을 모두 수행하게 된다. 만약, Master 노드로 요청을 할 경우 Master 노드가 위 두 노드의 역할을 수행하게 된다. 하지만, Master 노드는 클러스터 관리를 목적으로 하기 때문에 부하가 많이 발생하는 indexing 요청을 하는 것은 바람직 하지 않다.

 

클러스터의 성능과 안정성을 위해서 각 노드를 별도로 구성하는 것이 좋다.

 

 

반응형