Mac OS 환경을 기반으로 설치 및 실행한다.
엘라스틱서치 설치
1. 공식 홈페이지에 접속하여 메인화면 배너에 있는 Elasticsearch 다운로드 버튼을 클릭한다.
환경에 맞는 설치 파일을 다운로드 받는다. 나는 Mac OS 환경의 파일을 다운로드 받았다.
2.엘라스틱서치 실행
이제 엘라스틱서치의 압축을 풀고 설치된 디렉터리로 이동해서 bin/elasticsearch를 실행해보자.
$bin/elasticsearch
실행하면 아래와 같이 글자들이 주욱 뜬다.
빨간 네모 안의 글자가 현재 실행된 엘라스틱서치의 노드명이다.
나는 gimchowon-ui-MacBookPro.local 이라는 이름의 노드가 실행되었다.
노드의 이름은 별도로 설정하지 않으면 엘라스틱서치를 실행할 때마다 임의로 생성된다고 한다.
그런데 나는 두번째 실행할 때도 똑같이 gimchowon-ui-MacBookPro.local 라는 노드가 부여됬다. 내가 잘못 이해한건지 모르겠다.
엘라스틱서치 실행 명령문 뒤에 -d를 붙이면 백그라운드에서 실행할 수 있다.
백그라운드로 실행하면 화면에 아무런 반응없이 명령 수행이 끝난다.
실행중인 엘라스틱서치의 로그는 logs/elasticsearch.log 파일에 기록된다.
백그라운드로 실행한뒤, cat logs/elasticsearch.log 명령으로 실행로그를 확인해보자.
별도로 설정하지 않으면 처음 실행한 엘라스틱서치 프로세스는 9200번 포트를 사용할 수 있다.
또한 curl 명령어로 REST API를 사용할 수 있다.
curl 명령을 사용하여 현재 실행중인 엘라스틱서치 프로세스의 정보를 조회해보자.
$curl -XGET http://localhost:9200
이 결과는 웹브라우저 http://localhost:9200 에서도 확인 가능하다.
백그라운드로 실행한 후 아래 명령어로 실행중인 엘라스틱서치 프로세스를 확인 할 수 있다.
ps -ef | grep elasticsearch
실행중인 엘라스틱서치 프로세스를 종료하려면 kill 명령어를 사용한다.
위에서 실행중인 엘라스틱서치 프로세스 ID는 1773이다.
kill 로 종료후 다시 ps -ef | grep elasticsearch 명령어로 확인해보면 실행중인 프로세스가 없는 것을 확인할 수 있다.
엘라스틱서치 프로그램 구조
실행중인 엘라스틱서치 프로세스의 대한 정보를 자세히 들여다보자.
엘라스틱 서치를 백그라운드로 실행 한 후 프로세스를 조회한다.
엘라스틱서치의 실행 명령을 하나씩 살펴보자.
- /Users/kimchowon/downloads/elasticsearch-7.10.1/jdk.app/Contents/Home/bin/java
- 자바 프로그램을 실행
- -Des.path.home=/Users/kimchowon/downloads/elasticsearch-7.10.1
- 엘라스틱서치가 설치된 경로
- -cp /Users/kimchowon/downloads/elasticsearch-7.10.1/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
- -cp : .. 는 엘라스틱서치와 함께 실행할 프로그램의 위치를 설정하는 옵션
data 디렉토리
엘라스틱서치 디렉토리를 보면 data 디렉토리가 보일 것이다.
data 디렉토리는 실제로 색인된 문서의 검색데이터가 저장되는 공간이다.
별도로 지정하지 않는 한 data/ 디렉토리에 색인된 내용이 저장된다.
만약 1GB가 넘는 데이터가 엘라스틱서치에 입력된다면 data/ 디렉토리 이하의 파일 용량이 1GB 이상으로 늘어날 것이다.
따라서 실제 엘라스틱서치로 검색 시스템을 구축할 때는 엘라스틱 서치의 실행 환경과 데이터가 저장되는 저장소를 분리하는 것이 바람직하다.
환경 설정
엘라스틱서치의 몇가지 환경 설정을 실습해보자.
엘라스틱서치의 환경 설정 방법은 크게 3가지가 있다.
1. elasticsearch.in.sh, elasticsearch.yml 파일 내용을 변경
2. 엘라스틱서치 실행히 -D* 또는 --* 옵션을 이용
3. 엘라스틱서치 실행 후 REST API를 이용
책에서 1번 방법으로 가이드 해주고 있으니 1번 방법으로 실습해보겠다.
1) 자바 메모리 크기 설정
엘라스틱서치를 실행할 때 사용하는 자바 메모리의 최소, 최대 크기를 설정해보자.
ps -ef | grep elasticsearch 명령어로 현재 엘라스틱서치 실행 가용 메모리를 확인해보자.
나는 -Xms1g -Xmx1g 라고 초기 설정이 되어 있다. 자바 메모리를 최소, 최대 동일하게 1GB 사용할 수 있다는 뜻이다.
해당 옵션 내용은 config/jvm.options 파일에서 확인 할 수 있다.
해당 파일로 들어가 최소 메모리를 256MB, 최대 메모리를 2GB로 변경해보자.
vi config/jvm.options
그럼 다음 엘라스틱서치를 재실행하고 다시 확인해보면 최소, 최대 메모리 사이즈가 변경된 것을 확인할 수 있다.
2) config/elasticsearch.yml
엘라스틱서치의 주요 환경설정은 대부분 config 폴더 밑의 elasticsearch.yml 파일에서 설정한다.
파일을 열고 내용을 확인해보자.
- 클러스터 이름 변경하기
ealsticsearch.yml 파일에서 가장 처음 나오는 설정이 클러스터명이다.
#cluster.name: my-application
별도로 수정하지 않으면 디폴트 클러스터명은 "elasticsearch"이다.
클러스터명은 엘라스틱서치 시스템 전체를 구분짓는 이름이므로 반드시 변경하는 것이 좋다.
주석 #을 해지하고 이름을 cho-elasticsarch로 변경하겠다.
주의할 점은 콜론(:)뒤에 반드시 공백을 하나 띄고 이름을 입력해야 한다. 안그러면 오류가 난다.
cluster.name: cho-elasticsearch
- 노드명 변경하기
elasticsearch.yml에서 노드명도 변경해보자.
클러스터명과 달리 노드명은 반드시 큰따옴표("")로 감싸줘야 한다.
node.name: "node-1"
변경한 이름들이 잘 적용된 것을 확인할 수 있다.
'개발 > Elasticsearch' 카테고리의 다른 글
[Elasticsearch]데이터 처리 (0) | 2021.01.05 |
---|---|
[Elasticsearch] 플러그인 헤드(Head) 설치하기 (0) | 2020.12.29 |