2. 시작하기
용어정리
- 인덱싱(색인) : 데이터를 검색될 수 있는 구조로 변경하기 위해 원본(소스)을 검색어 토큰들로 변환하여 저장하는 과정
- 인덱스: 색인된 데이터가 저장되는 저장소. 도큐먼트의 논리적 집합의 단위
- 검색: 인덱스에서 검색어 토큰들을 포함하고 있는 문서들을 찾아가는 과정
- 질의: 문서를 찾거나 집계하기 위한 검색어와 검색 조건
환경설정
- 노드들의 역할을 나누거나 클러스터의 속성을 결정한다.
- ~./config 경로 아래의 파일을 변경하거나 엘라스틱서치 실행 시 옵션으로 설정할 수 있다.
- ~/.config/jvm.options : JVM 힙 메모리 설정한다. 시스템 메모리 절반은 루신파일 캐시을 위해 남겨두어야 한다.
- ~/.config/elasticsearch.yml : 엘라스틱서치와 관련된 대부분의 설정을 변경한다.
- cluster.name: 클러스터를 구분하기 위한 이름을 설정한다. 클러스터의 이름이 같으면 같은 클러스터로, 다르면 다른 클러스터로 인식한다.
- node.name: 노드를 구분하기 위한 이름을 지정한다. 기본은 호스트명이다.
- node.attr.<key>: "<value>" : 노드 별 속성 지정을 위한 namespace를 설정한다. (hot/warm 또는 샤드 배치를 조정한다.)
- path.data: 색인 데이터의 저장 경로를 지정한다.
- path.logs: 엘라스틱서치의 로그의 저장 경로를 지정한다.
- bootstrap.memory_lock: 엘라스틱서치의 힙 영역을 다른 자바 프로그램이 간섭하지 못하도록 설정한다. 항상 true 권장
- network.host: 엘라스틱서치의 실행 서버의 ip 주소를 설정한다. default는 루프백이며, 실제 IP로 변경시 운영 모드로 변경된다.
- 운영모드가 아닐 시 localhost에서만 접근 가능하며 부트스트랩 체크하지 않는다.
- _local_: 루프백(127.0.0.1)을 의미한다.
- _site_: 네트워크 내 private ip를 의미한다. 클러스터 구성 시 주로 사용된다.
- _global_: 외부에서 보는 주소를 의미한다.
- http.port: 클라이언트와 통신하기 위한 http의 포트를 지정한다. 기본은 9200, 이미 사용 중인 경우 9200~9299 범위에서 할당된다.
- transport.port: 클러스터 내 노드 간 통신하기 위한 tcp 포트를 지정한다. 기본은 9300, 이미 사용 중인 경우 9300~9399 범위에서 할당된다.
- discovery.seed_hosts: 클러스터의 구성을 위해 바인딩할 원격 노드의 ip 또는 도메인 네임의 리스트를 지정한다.
- 주소만 입력 시 9300~9305 포트를 탐색한다.
- 원격 노드를 찾아 클러스터로 바인딩되는 과정을 디스커버리라고 한다.
- cluster.initial_master_nodes: 마스터 노드를 선출하기 위한 노드 목록을 지정한다.
- elasticsearch.yml에서 $ 로 환경변수에 접근할 수 있다.