ElasticSearch Install


* 간략하게 개념을 적어놓았기 때문에 자세한 내용을 아시기 위해서는 공식 홈페이지를 방문하시기 바랍니다.
* 현 문서에 설치된 버전 좀 된 버전이므로, 최신 버전을 다운받아 설치하시기 바랍니다.


Elasticsearch ?

- 오픈 소스 프로젝트
- 분산 데이터 베이스 바탕
- RESTful API 지원
- 검색 엔진
- 공식 홈페이지 : http://www.elasticsearch.org/overview/elasticsearch/ 

Elasticsearch Install

* http://www.elasticsearch.org/overview/elkdownloads/ 여기서 적절한 파일을 다운 받습니다.
저의 경우 rpm을 다운 받아 설치 하였습니다.

구성도



 - 이번 설치의 경우 가벼운 테스트 용도이므로 두대의 서버로 클러스터 구성과 각각 master/data기능으로 설정하였습니다. 
 - 서비스 규모에 따라 데이터의 양이 커질 경우 구성이 바뀌므로, 사용에 맞게 구성 하시면 될듯 합니다.


 1. rpm 으로 설치

rpm -Uvh elasticsearch-0.90.8.noarch.rpm

설치를 하고 나시면 /etc/elasticsearch/ 경로에 elasticsearch.yml , logging.yml 두 파일을 보실 수 있을 것입니다.

2. 설정 파일 수정

<ESServer01 elasticsearch.yml>
cluster.name : ESCluster
node.name : esnode01
node.master: true
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 1
transport.tcp.port: 9300
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts:["10.10.20.2:9300", "10.10.20.3:9300"]


<ESServer02 elasticsearch.yml>
cluster.name : ESCluster
node.name : esnode02
node.master: true
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 1
transport.tcp.port: 9300
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts:["10.10.20.2:9300", "10.10.20.3:9300"]


shard의 경우 추후 수정이 불가하므로, 데이터의 양에 맞게 shard의 수를 선언 해주셔야 합니다.
shard의 값에 대한 정확한 데이터는 아직 없는 것으로 알고 있습니다. 
repl의 경우 복제할 수 이므로, 1의 값은 일반적인 2개의 개념이라고 보시면 됩니다.

3. 방화벽 설정

INPUT, OUTPUT 9300 port 설정


4. elasticsearch 기동
/etc/init.d/elasticsearch start


후기
설치 가이드를 거의 1년이 되도록 안올리고 있다가 이제서야 올립니다. 현재는 1.3.x버전이 나온걸로 알고 있습니다. 
버전 업에 따라 기능이 추가된 것도 있고 하더군요.
- 데이터의 종류와 데이터 사이즈에 따라 shard의 수를 어떻게 정해야할지에 대한 가이드 라인이 없는 걸로 알고 있습니다. 
- 데이터가 많아질수록 나중엔 수평 확장이 필요하다는 것, 또한 하드웨어 성능도 어느정도 지원 해줘야 한다는 것으로 알고 있습니다.
- 모니터링 툴의 경우 주로 ES-HEAD, bigtop 등이 있으며, 현재 엘라스틱 서치에서 마블이라는 모니터링 툴을 개발 버전으로(무료) 사용 가능하도록 하고 있습니다. 


그외 
 elasticsearch에 대한 최적화 및 참고 문서를 간략하게 정리하여 올립니다.

최적화 방법 
- 최적화 방법:  JVM사이즈를 조정하는 방법이 있으며 Elsticsearch 전용 서버 운영 시 메모리 용량의 절반만 할당할 것을 권장
- 인덱스 최적화: optimize 를 사용하여 세그먼트를 병합, 단 시스템에 부담을 주기 때문에 시스템 사용이 적은 시간대에 작업 할 것을 권장
- 필드 캐시가 최대 힙 크기를 넘어 out of memory error 발생 시 가비지 컬렉션 실행을 해주도록 한다.
   inde.cache.field.type : soft로 설정

참고 문서
 "1shard를 이용하여 위키 데이터를 인덱싱 한 결과 " http://blog.trifork.com/2013/09/26/maximum-shard-size-in-elasticsearch/


댓글

이 블로그의 인기 게시물

블로그 이전 작업 및 블로깅 할 목록 정리

[Spring Framework] Redirect +a 궁금증! ver_0.1

Phoenix 라이브러리 - ERROR 2008 (INT10): Unable to find cached index metadata 발생 시