본문 바로가기
ES

elasticsearch

by 흰색남자 2022. 10. 27.

엘라스틱서치는 루씬을 기반으로 방대한 양의 데이터를 신속하게 검색할 수 있는 검색엔진이다.

엘라스틱서치는 NRT (Near Rear Time)검색 플랫폼이라는 특징을 가지고 있고, 색인화 하는 시점부터 문서가 검색 가능해지는 시점까지 1초가량 걸리며 거의 실시간에 가까운 속도로 색인된 데이터의검색, 집계가 이루어진다.

 

RestAPI을 사용함.

 

인덱스 라이프사이클 - 조건이 충족되면 다음 단계로 이동함.

ex) 5GB이상 or 1day 이상 or index 1천만개 이상 지나면 다음 단계 ( data >ultrawarm )

 30일 이상 지나면 cold, 60일 이상이면 delete

1. datanode

- 빠른 검색을 위한 data node

2. ultrawarm node

- IA 검색을 위한 DATA

3. cold

- store node

4. delete

-

 

ELK, EFK 를 사용함.

Logstash, Fluentd 차이 목적의 차이는 없음. 데이터 수집 시 필터링.

 

 

 

엘라스틱서치 논리적 물리적 구조를 가지고 있다.

1. 논리적 구조

2. 물리적 구조 // 클러스터 > 노드 > 인덱스 > 샤드

인덱스는 기본적으로 샤드라는 단위로 분리되고 각 노드에 분산되어 저장됩니다.

샤드는 위에서 말한 루씬 기반의 단일 검색 인스턴스이며, 이 역시 고가용성을 위해 Primary, Replicas로 복제되어 저장됨.

Primary 샤드, Replicas 샤드는 동일한 데이터는 담고 있으며, 반드시 서로 다른 노드에 저장된다.

 

 

 

 

엘라스틱 서치의 각 노드의 역할

각 노드가 수행할 수 있는 역할은 다양하게 있다.

config/elasticsearch.yml 에서 설정할 수 있다.

1. node.master // default = true

마스터 후보(master eligible) 노드 여부를 설정합니다. false인 경우 이 노드는 마스터 노드로 선출이 불가능합니다. 모든 클러스터는 1개의 마스터 노드가 존재하며 마스터 노드가 다운되거나 끊어진 경우 남은 마스터 후보 노드들 중에서 새로운 마스터 노드가 선출되게 됩니다.

 

1-2 Split-Brain 노드

마스터 노드

 

2. node.data

노드가 데이터를 저장하도록 합니다. false인 경우 이 노드는 데이터를 저장하지 않습니다.

3. node.ingest

데이터 색인시 전처리 작업인 ingest pipleline 작업의 수행을 할 수 있는지 여부를 지정합니다. false인 경우 이 노드에서는 ingest pipeline 작업의 실행이 불가능합니다.

4. node.ml

이 노드가 머신러닝 작업 수행을 할 수 있는지 여부를 지정합니다. false 인 경우 이 노드애서는 머신러닝 작업이 수행되지 않습니다.

 

 

 

 

 

'ES' 카테고리의 다른 글

엘라스틱 서치가 검색에 빠른 이유  (3) 2022.12.17
엘라스틱서치의 루씬 검색 라이브러리  (0) 2022.11.22