느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail

 YML일명, 얌파일은 안드로이드에 대해서 공부할때 주의깊게 본 설정파일인데 여기서 보니 반갑고 한눈에 설정파일임을 알 수 있었다.

 

 각설하고 엘라스틱 서치의 디렉토리구조는 다음과 같다. 참고로 디렉토리 구조를 뽑아내는 명령어는 리눅스의 tree를 이용하였다.

 

elasticsearch

    ├── bin

    ├── config

    ├── data

    ├── jdk

    ├── lib

    ├── logs

    ├── modules

    └── plugins

 

bin : 실행스크립트 모음

config : 설정파일 모음

data : 데이터가 저장되는 공간

jdk : Java Development Kit

lib : 라이브러리 모음

logs : 로그 모음

modules : 모듈 모음

plugins : 플러그인 모음

 

 책의 내용을 최대한 놓치지 않도록 면밀히 읽고있는데 config 파일이 7버전과 1버전이 약간 다른것 같다.. 나중에 이슈가 되면 인터넷 리서치가 필요할 듯 보인다. 일단, 책에 나와있는대로 시스템에 영향을 줄 수 있는 설정파일 정보를 정리해 보았다.

 

특히 설정파일에서 내부IP, 외부IP를 설정하는 내용이 나오는데 해당 설정들을 사용할 경우는 다음과 같은 구조를 가질때 사용한다. 그렇지 않을 경우에는 network.host 설정만 고쳐주면 되니 주의하도록 하자.

 

[ /config/elasticsearch.yml ]

# JVM위에서 실행중인 ElasticSearch가 점유하는 메모리를 고정시킨다. 
# (시스템 전체메모리의 50%가 넘지 않도록 하는것이 안정적이라고 한다.)
bootstrap.mlockall : true 

# 내부 IP 주소
network.bind_host: 192.168.0.1

# 공개 IP 주소
network.publish_host: 192.168.0.1

# 내부, 공개 주소가 같을 경우 IP 주소
network.host : 192.168.0.1

# 하나의 Elasticsearch 노드가 다른 노드와 바인딩되어 데이터교환을 위해 
# 통신하는 포트는 9300~9399 범위의 http통신포트 사용
trasport.tcp.port:9300

# 기본적으로 REST API를 서비스하기 위해 엘라스틱서치는 9200~9299 범위의 HTTP 통신 포트를 사용.
http.port:9200

# true일 경우 엘라스틱서치가 통신하는 내용의 데이터를 압축하여 전달.
transport.tcp.compress: treu

# 옵션에 설정된 용량을 초과하면 데이터를 전달하지 않는다.
http:.max_content_length: 100mb

# false일 경우 엘라스틱서치 노드는 REST API통신을 하지 않는다.
# 여러개의 엘라스틱서치 노드를 구현시 하나의 노드만 Rest를 허용하게 해준다.
http.enabled: false

# 게이트웨이 : 엘라스틱서치의 전체 클러스터의 상태를 저장하는 저장소.
# 엘라스틱서치의 전체 클러스터가 종료된 후 재실행 될 때 게이트웨이에 저장된 
# 상태값을 읽어 들여 노드와 인덱스 등에 대해 새로 설정하는데, 이 과정을 recovery라고 한다.
# 전체 클러스터가 재시작 되고 몇 개의 노드가 활성화 됐을 때 리커버리를 시작할지 설정한다.
gateway.recover_after_nodes: 1

#앞에 지정된 몇 개의 노드가 활성화 되고 다시 얼마시간 동안의 시간을 기다린 후에 리커버리를 실행할지 설정한다.
gateway.recover_after_time: 5m

#엘라스틱서치 클러스터에 몇 개의 노드가 있는지 명시하고 설정된 개수만큼의 노드가 활성화 되면 즉시 리커버리를 실행한다.
gateway,expected_nodes: 2

 

profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!