설치하기
Single Cluster로 구성하기
- 최신 버전의 Java 설치
- Elasticsearch download link
- 압축풀기
- 끝 !
Java는 설치되어 있다는 가정하에 elasticsearch를 설치해보자.
일단 공식 홈페이지에서 압축파일을 받아야 한다. (현재 최신 버전은 1.6.0)
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.6.0.tar.gz
을 통해 파일을 받고
tar zxvf elasticsearch-1.6.0.tar.gz
으로 압축을 푼다. 자 이러면 설치가 끝났다. 너무 쉬워서 설치가 되었는지 불안하므로 확인을 해보자
설치 폴더에서
./bin/elasticsearch
명령어로 elasticsearch를 실행시켜보자 (-d 옵션을 주면 백그라운드 daemon으로 실행되게 된다)
일련의 메시지가 출력되고 elasticsearch가 실행되었다.
elasticsearch가 제공하는 REST API를 통해서 잘 동작하고 있는지 확인해보자.
curl 'http://localhost:9200/?pretty'
를 실행하면 다음과 같은 메시지가 출력된다.
{ "status" : 200, "name" : "Coach", "cluster_name" : "elasticsearch", "version" : { "number" : "1.6.0", "build_hash" : "cdd3ac4dde4f69524ec0a14de3828cb95bbb86d0", "build_timestamp" : "2015-06-09T13:36:34Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
이 출력값의 의미는 Elasticsearch cluster가 동작하고 있다는 의미이다.
Multi Cluster로 구성하기
- 용어를 정리하고 시작하자.
- Node
- 동작하고 있는 elasticsearch의 인스턴스
- Cluster
- 같은 cluster.name을 갖고 있는 데이터를 공유하고 failover를 방지하고 스케일 아웃되는 노드들의 그룹
즉 같은 cluster로 구성하고 싶다면 같은 네트워크 안에서 같은 cluster.name1 으로 구성하고 elasticsearch를 재시작하면 cluster.name이 같은 것 끼리 clustering 된다.
실제로 클러스터 구성을 해보자.
실습은 Ubuntu 14.04.1, Java 1.7에서 하겠다.
일단 기본 cluster.name은 default 값으로 elasticsearch로 설정되어 있고 이 디폴트 값을 그대로 사용하자.
첫번째 노드를 실행하면 그 노드는 마스터 노드로 정의되며 다음과 같은 메시지를 볼 수 있다.
두번째 노드를 실행하면 포트 9200을 통해 자동으로 master 노드가 있는지 확인한 후 자신을 클러스터에 등록한다.
두번째 노드가 클러스터에 추가된 후 첫번째 노드로 가서 확인해보면 다른 노드가 클러스터에 등록된 것을 확인할 수 있다.
끝내기
노드를 정지할 때는 다음과 같이 요청하면 된다.
curl -XPOST 'http://localhost:9200/_shutdown'
- config/ 폴더 안에 elasticsearch.yml파일에 있다 ↩