디렉토리 구조
- 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 |