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 두 파일을 보실 수 있을 것입니다.
설치를 하고 나시면 /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/
댓글
댓글 쓰기