Linux(Centos)에서 ElasticSearch 설치하기.
1. Download
https://www.elastic.co/downloads/elasticsearch
https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.1/elasticsearch-2.3.1.tar.gz
current version은 2.3.1 임.
tar -zxvf elasticsearch-2.3.1.tar.gz
2. 실행 및 command
1) 기본 실행
bin/elasticsearch |
2) 백그라운드 실행 및 log 확인
bin/elasticsearch -d cat logs/elasticsearch.log |
3) 설치 정보 확인
curl -XGET http://localhost:9200 |
4) 실행중인 ES Process 검색
ps -ef | grep elasticsearch |
5) Elasticsearch 종료
kill {PID} |
6) -p 옵션으로 Process ID 저장
bin/elasticsearch -d -p es.pid cat es.pid |
3. Batch Process
1) startup.sh
echo 'bin/elasticsearch -d -p es.pid' > start.sh |
2) stop.sh
echo 'kill 'cat es.pid'' > stop.sh |
4. 환경설정
1) Memory
#> vi bin/elasticsearch.in.sh
... if [ "x$ES_MIN_MEM" = "x" ]; then ES_MIN_MEM=256m fi if [ "x$ES_MAX_MEM" = "x" ]; then ES_MAX_MEM=1g fi if [ "x$ES_HEAP_SIZE" != "x" ]; then ES_MIN_MEM=$ES_HEAP_SIZE ES_MAX_MEM=$ES_HEAP_SIZE fi ... |
memory는 min 512m / max 2g 로 변경가능
2) 클러스터
클러스터 설정확인
curl -XGET localhost:9200/_cluster/stats?pretty=true |
- 설정
(1) port
vi config/elasticsearch.yml
# ---------------------------------- Network ---------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # # network.host: 192.168.0.1 # # Set a custom port for HTTP: # http.port: 9200 |
(2) Paths 변경
vi config/elasticsearch.yml
# ----------------------------------- Paths ----------------------------------- # # Path to directory where to store the data (separate multiple locations by comma): # # path.data: /path/to/data # # Path to log files: # # path.logs: /path/to/logs |
4. Plugin 설치
https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/installation.html 참조
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-plugins.html 참조
1) head 설치
bin/plugin install mobz/elasticsearch-head |
인터넷이 안되는곳으로 github에서 source 받아서 빌드하거나, 이미 빌드된 file중
"_site" 폴더를 plugins/ 하위에 넣어주면 된다.
==> 이렇게 하면 에러난다.
ㅠㅠ
그래서 정식으로 설치하되, plugin file을 받아서 install 하는 방법으로..
bin/plugin install file:/path/to/my-plugin-1.0.0.zip |
# ./plugin install file:/home/ioffice/elasticsearch-head-master.zip
5. Multi node on single machine
두개 이상의 Elastic Search node를 하나의 machine에 올릴 경우의 설정
yml 파일을 수정한경우
$ bin/elasticsearch -Des.config=$ES_HOME/config/elasticsearch.1.yml $ bin/elasticsearch -Des.config=$ES_HOME/config/elasticsearch.2.yml ... |
위와같이 별도 config 파일을 실행(loading) 하면된다.
이때 주의사항. (H/W 적으로는 32GB 이상을 권장하네요..)
|
혹은
$ bin/elasticsearch -Des.node.data=false -Des.node.master=true -Des.node.name=NoData
$ bin/elasticsearch -Des.node.data=true -Des.node.master=false -Des.node.name=DataOne
$ bin/elasticsearch -Des.node.data=true -Des.node.master=false -Des.node.name=DataTwo
위처럼 직접 config를 지정할 수 도 있음.
[참조]
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html
'
중요한 요점.
꼭 변경해야 할 항목.
[config/elasticsearch.yml]
- network.host : {host IP} - path.data / path.logs {log와 data 저장경로} - transport.tcp.port : { node communication port} - http.port : {listen for http traffic} - clustername : { 같은 cluster 노드이면, 같게,, 다른 cluster 노드이면 다르게설정} - node.name : {꼭 다르게 설정} |
sample
cluster.name: cluster_dev node.name: node1 node.master : true node.data : true |
path.data: /block/es1/data path.logs: /block/es1/logs network.host: 127.0.0.1 transport.tcp.port: 9300 http.port: 9200 |
기타
- Master node ; node.master=true, node.data=false : Cluster node를 control하는 master node 역할 지정 - Client node : node.master=fasle, node.data=false : data를 저장하지 않고, router기능과 search 기능만 담당함. - data.node : true로 설정시, data를 저장하며, CRUD, search 등의 operation 가능 (node.master/node.data Default TRUE ) |