centos7 기준입니다.
호스트네임이 node1~4인 4대의 서버에 엘라스틱서치를 설치해보겠습니다.
각 서버에 java 8버전이 설치되었음을 가정합니다.
엘라스틱서치 7버전은 java 8버전이 호환되고,
8버전 부터 java 버전이 높아집니다.
1. 사전 준비:
action server: node1~4
user: root
pwd: -
cmd:
# 프로세스가 가질 수 있는 최대 메모리 맵 영역 수를 늘려줍니다.
# 수정 하지 않고 엘라스틱 서치 기동 시 262144 만큼의 수가 설정되어야 한다는 에러가 발생합니다.
vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
# 엘라스틱서치 압축 파일 다운로드 및 해제
cd /opt/apps
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
tar xvfz elasticsearch-7.5.1-linux-x86_64.tar.gz
# 실행 계정 hadoop 통일
chown -R hadoop:hadoop ./elasticsearch-7.5.1/
# 엘라스틱서치에 사용될 데이터 저장 경로 및 로그 위치 설정
mkdir -p /data/elasticsearch/data
mkdir -p /data/logs/elasticsearch
# 권한 부여
chown -R hadoop:hadoop /data/elasticsearch
chown -R hadoop:hadoop /data/logs/elasticsearch
# 계정 전환 및 경로 이동
su - hadoop
cd /opt/apps/elasticsearch-7.5.1/
2. 설정 파일 수정
action server: node1~4
user: hadoop
pwd: /opt/apps/elasticsearch-7.5.1
cmd:
# 기존 설정 파일을 백업
mv config/elasticsearch.yml config/elasticsearch.yml_backup
# 새 설정 파일 작성
vi config/elasticsearch.yml
# 클러스터명
cluster.name: "es-cluster"
# 클러스터 내부에서 노드를 식별하기위한 이름
# 서버마다 다르게 설정해야합니다. 꼭 서버의 호스트명일 필요는 없습니다.
node.name: "es-node1" // 각 서버별로 es-node1~4
# ES가 실행되는 서버의 ip 주소
#_local_ : 루프백 주소 127.0.0.1 과 같습니다. Default값
#_site_ : 로컬 네트워크 주소로 설정, 실제로 클러스터링 구성시 주로 설정하는 값
network.host: ["_local_"", ""_site_"]
# 클러스터 구성을 위해 바인딩 할 원격 노드의 IP 또는 도메인 주소를 배열 형태로 입력
# 실제 서버의 호스트명입니다.
discovery.seed_hosts: ["node1","node2","node3","node4"]
# 클러스터가 최초 실행될 때 명시된 노드들을 대상으로 마스터 대상으로 마스터 노드를 선출합니다.
# ES가 인식하는 노드의 이름입니다.
cluster.initial_master_nodes: ["es-node1","es-node2","es-node3","es-node-4"]
# 데이터가 저장될 경로입니다.
path.data: /data/elasticsearch/data
# 로그가 저장될 경로입니다.
path.logs: /data/logs/elasticsearch
# 엘라스틱 서치가 사용할 메모리 값과 관련 로그 파일 경로를 설정합니다.
vi config/jvm.options
# 수정
-Xms4g
-Xmx4g
# 아래 세줄 찾아서 수정
-XX:HeapDumpPath=/data/elasticsearch/data
-XX:ErrorFile=/data/logs/elasticsearch/hs_err_pid%p.log
8:-Xloggc:/data/logs/elasticsearch/gc.log
3. 기동 및 확인
action server: node1~4
user: hadoop
pwd: /opt/apps/elasticsearch-7.5.1
cmd:
# 기동
./bin/elasticsearch -d
# 포트가 열려있는지 확인합니다. 기본 포트로 설정하였습니다.
netstat -ntlp | grep 9200
netstat -ntlp | grep 9300
# 해당 명령어로 아래와 같은 결과 값이 나온다면 성공입니다.
curl -X GET http://localhost:9200
# 결과
{
"name" : "es-node1",
"cluster_name" : "es-cluster",
"cluster_uuid" : "rnEVH-uyQY-wlYNkCI4PJA",
"version" : {
"number" : "7.5.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
"build_date" : "2019-12-16T22:57:37.835892Z",
"build_snapshot" : false,
"lucene_version" : "8.3.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
잘못된 정보가 있다면 말씀 부탁드립니다.
감사합니다.
반응형
'BigData > ElasticSearch' 카테고리의 다른 글
ElasticSearch) 엘라스틱서치 기본 사용법 (0) | 2024.08.16 |
---|---|
ElasticSearch) 엘라스틱서치 jvm.options (0) | 2024.08.16 |
ElasticSearch) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 에러 해결 (0) | 2024.08.16 |
ElasticSearch) elasticsearch.yml 설정 값 (2) | 2024.08.16 |