본문 바로가기

검색엔진/Elasticsearch

Elasticsearch 구성

디렉토리 구조

 - elasticsearch 설치 파일의 압축을 풀면 bin, config, lib 디렉토리만 존재하고, 나머지 디렉토리는 실행할 때 생성 됨

bin : elasticsearch 실행에 필요한 스크립트와 플러그인 설치 스크립트

config : elasticsearch.yml과 logger.yml 파일

lib : 검색엔진에서 사용하는 라이브러리

data : 별도 path를 지정하지 않으면 기본 index store의 위치

logs : 검색엔진에서 기록하는 로그파일

plugins : 검색엔진에서 사용하는 모든 플러그인이 설치되는 위치

work : 임시 파일 경로


실행

 - bin/elasticsearch -f


Cluster

각 node를 cluster명 기준으로 grouping 하여 서비스 함

 - 이름이 다르거나 틀릴 경우 정상적으로 grouping 되지 않음

cluster.name은 elasticsearch 실행 시 data 디렉토리 밑에 같은 이름의 디렉토리를 생성. cluster_standalone을 지정하지 않으면 elasticsearch로 자동 생성


Node

Master Node ( node.master: true )

 - 전체 cluster와 node, shard 등에 대한 조정자 역할

 - 한 cluster 내에서 master node는 최소 2개 이상으로 구성

 - 처음 선출된 master node에 장애가 발생할 경우 자동으로 다음 master node를 선출하여 장애 대응이 가능

Data Node ( node.data: true )

 - 색인 데이터를 저장하고, 검색 요청 시 실행되며, 실제 모든 작업을 수행

Load Balancer Node ( node.master: false node.data: false )

 - 검색 요청에 대한 트래픽 분산 및 그 결과를 통합하여 리턴

Client Node ( node.client: true )

 - client node로 지정하면 node.master 설정이 default false로 처리되므로 master node로 사용하지 않을 경우 지정


Index Shard, Index Replica

 - shard와 replica의 기본값은 5 대 1 ( index.number_of_shards: 5 index.number_of_replicas: 1)

 - 단일 구성에서는 복제 설정을 하더라도 할당할 node가 없으므로 replica 설정은 0으로 함 ( index.number_of_shards: 5 index.number_of_replicas: 0)

 - index shard는 색인 저장소로 사용되는 index를 물리적으로 작은 단위의 shard에 분산해서 저장하기 위해 설정

 - index replica는 장애가 발생하거나 shard가 깨졌을 때 복구와 대응을 하기 위해 설정


index 기타

index.mapper.dynamic: true - 자동으로 필드 매핑을 설정

index.refresh_interval: "1s" - 색인 operation에 대한 실시간 검색 반영을 위한 주기 설정

action.auto_create_index: true - 자동 index 생성에 대한 설정으로 패턴을 지원

action.disable_shutdown: true - REST API를 이용하여 node shutdown 기능을 활성화


Network

 - 클라이언트와 서버 간 통신을 위해 프로토콜과 포트 정보를 구성

network.host: localhost - IP 정보 설정

transport.tcp.port: 9300 - TCP 기본 포트 설정

transport.tcp.compress: true - TCP 통신 시 데이터 압축을 설정

http.port: 9200 - http 기본 포트 설정

http.enabled: true - http(REST API) 사용 활성화


Gateway ( gateway.type: local )

 - cluster의 메타 정보와 index 설정, 매핑 정보 등을 어떻게 저장하고 운영할지 구성. 이를 바탕으로 하나 또는 전체 node를 재시작할 때 저장된 정보를 이용하여 서비스가 안전하게 운영되도록 해줌

 - gateway type은 색인 저장소 유형으로 사용하는 스토어 타입과는 다른 설정으로 4가지 유형을 제공(local, shared fs, hadoop, s3). local gateway를 추천하고, 이외의 타입들은 삭제 예정(레거시 코드를 지원하기 위해 남아있음)


Discovery

 - cluster 내에서 node간 통신과 master node 관리를 설정

 - standalone 구성에서는 별로 필요하지 않지만, cluster 구성 때 중요한 역할을 담당

discovery.zen.ping.multicast.enabled: false - 같은 구간에 있는 모든 node와 discovery 통신을 함

discovey.zen.minimum_master_nodes: 2 - 역할을 수행할 node의 최소 단위를 지정

discovery.zen.ping.timeout: 3s - cluster내의 각 node의 상태 체크를 위한 timeout 설정

discovery.zen.ping.unicast.hosts: ["localhost:9300", "localhost:9301" ... ] - clustering할 node의 정보


'검색엔진 > Elasticsearch' 카테고리의 다른 글

Elasticsearch 주요 용어  (0) 2017.09.25
Elasticsearch 특징  (0) 2017.09.25