들어가며...
Elasticsearch의 shard와 replica 동작을 확인하기 위해 하나의 컴퓨터에서 여러개의 Node를 실행할 필요가 있을 수 있습니다. 이를 테스트하기 위해서 개발환경에서 여러 개의 Node를 실행하는 방법에 대해서 알아보도록 하겠습니다.
- Table of Contents
- Node별로 설정값 다르게 하여 Elasicsearch 실행하기
- Kibana로 확인하기
Node별로 설정값 다르게 하여 Elasticsearch 실행하기
Elasticsearch를 별다른 설정없이 실행하면 default 설정값으로 실행하게 됩니다. 하여 설정값의 변경없이 두 개의 Node를 실행할 경우 충돌이 발생하게 됩니다(포트번호, data 파일, log 파일 등). 따라서 하나의 컴퓨터에서 여러 개의 Node를 실행하고자 할 경우 적절한 설정값들을 지정하여 주어야 합니다. 본 글에서는 동일한 Cluster에 서로다른 Node 두 개를 실행할 것이며 이를 위해 아래의 설정 값들을 지정하여 elasticsearch를 각각 실행할 것입니다.
설정값 | 설명 |
cluster.name | cluster의 이름 (동일한 값으로 설정하여야 replica의 동작을 확인할 수 있다.) |
node.name | 서로다른 Node명으로 설정한다. 본글에서는 "node-1", "node-2"로 사용토록 할 것이다. |
path.data | 해당 Node의 data가 적재되는 경로로 본 글에서는 "ES_HOME(elasticsearch가 설치된 디렉토리)/node1/data"의 형태로 설정할 것이다. |
path.logs | 해당 Node의 로그가 적재되는 경로로 본 글에서는 "ES_HOME/node1/logs"의 형태로 설정할 것이다. |
http.port | 기본값은 9200이나 본 글에서는 각각 9201, 9202로 설정할 것이다. |
위에 설명한 5개의 설정 값을 지정하여 elasticsearch를 실행하면 하나의 컴퓨터에서 여러 개의 Node를 실행할 수 있습니다. 각각의 설정 값들은 겹치지 않는 범위 내에서 알맞은 값으로 설정하시면 됩니다.
elasticsearch 실행 시 configuration값을 지정하는 옵션은 "-E"이며 아래의 명령어로 확인할 수 있습니다.
$ elasticsearch -h |
다음은 위 5개의 설정 값을 지정하여 실행하는 예시입니다.
$ elasticsearch -Ecluster.name=my-application -Enode.name=node-1 -Epath.data=$ES_HOME/node1/data -Epath.logs=$ES_HOME/node1/logs -Ehttp.port=9201 |
path.data와 path.logs의 $ES_HOME에는 본인의 elasticsearch 설치 홈경로를 넣으시면 됩니다. 다음은 두 번째의 Node를 실행합니다.
$ elasticsearch -Ecluster.name=my-application -Enode.name=node-2 -Epath.data=$ES_HOME/node2/data -Epath.logs=$ES_HOME/node2/logs -Ehttp.port=9202 |
Kibana로 확인하기
kibana로 shard의 상태를 확인하기 전에 kibana실행도 별도의 옵션이 필요합니다. Node의 개수가 두개이므로 kibana 실행 시 해당 Node들의 endpoint들을 설정하여야 합니다.
우선 kibana 사용법을 아래의 명령어로 확인하여 봅니다.
$ kibana -h |
elasticsearch 실행 시 설정한 port값을 설정하여 kibana를 실행하면 됩니다.
$ kibana -e http://localhost:9201,http://localhost:9202 |
정상적으로 kibana가 실행되었으면 브라우저에서 localhost:5601로 접속한 후 "Dev Tools" 메뉴로 이동한 후 아래와 같이 "GET /_cat/shards?v" 명령어를 입력한 후 실행시켜 봅니다.
결과화면의 내용은 위 그림의 내용과 다를 수 있습니다. 중요한 것은 Replica shard가 생성되었다는 것입니다. 참고로 kibana에서 생성하는 index들은 "auto_expand_replicas" 설정 값이 "0-1"로 되어 있어 replica shard를 할당할 node가 없을 경우 primary shard만 생성하였다가 replica를 할당할 node가 생겼을 경우 자동으로 replica shard를 생성하게 됩니다.
아래의 명령어로 각각의 index에 대한 설정 값을 확인할 수 있습니다.
U2ful은 ♥입니다. @U2ful Corp.
'Programming > ElasticSearch' 카테고리의 다른 글
[Elasticsearch] Analysis & Analyzer (0) | 2020.02.04 |
---|---|
[Elasticsearch] Sample 데이터 적재/조회 하기 (0) | 2020.01.21 |
[Elasticsearch] 맥(Mac)에 Homebrew를 사용하여 ElasticSearch 설치하기 (0) | 2020.01.10 |