노드(Nodes)
엘라스틱서치는 분산 시스템이며 노드는 이 분산 시스템에서 작동하는 하나의 엘라스틱서치 엔진(single server)을 의미한다. 이 노드들은 우리가 생각하는 일반적인 엘라스틱서치 엔진이며(내 컴퓨터에 엘라스틱서치를 한개 설치하였다면 하나의 노드를 설치한 것과 동일하다) 데이터의 저장과 색인(Index), 검색(Search) 모두 가능하다.
노드는 엘라스틱서치에서 고유의 아이디값으로 UUID(Universally Unique IDentifier)를 제공하며 원할 경우 노드의 고유의 아이디를 내가 직접 변경할 수 있다. 노드의 값을 변경하기 위해서는 엘라스틱치 설치된 위치에 config 폴더에 들어가면, 다양한 설정값들이 존재한다.
엘라스틱서치폴더/config
elasticsearch.keystore
elasticsearch.yml
jvm.options
log4j2.properties
role_mapping.yml
roles.yml
users
users_roles
위에 있는 파일 중, elasticsearch.yml을 열어보면
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
#cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
이와같이 yml 포맷의 설정파일이 있는데 node.name의 위치의 주석을 제거하고 노드 명칭을 직접 설정하면 된다.
클러스터(Clusters)
클러스터의 의미에서 풍기는 것처럼 클러스터는 노드들의 집합을 뜻한다. 여기서 집합은 2개 이상이 아니라 단 한개의 노드라고 하더라도 클러스터의 의미로 사용할 수 있다.
클러스터는 노드와 마찬가지로 고유의 이름으로 식별할 수 있으며, 기본 이름은 "elasticsearch"이다.
[2020-07-03T15:27:10,379][INFO ][o.e.e.NodeEnvironment ] [USER-PC] using [1]
data paths, mounts [[??蹂쇰ⅷ (E:)]], net usable_space [421.5gb], net total_spac
e [465.7gb], types [NTFS]
[2020-07-03T15:27:10,402][INFO ][o.e.e.NodeEnvironment ] [USER-PC] heap size
[989.8mb], compressed ordinary object pointers [true]
[2020-07-03T15:27:10,913][INFO ][o.e.n.Node ] [USER-PC] node name
[USER-PC], node ID [1BZmoAgCQtCaW5fAcmZBIQ], cluster name [elasticsearch]
[2020-07-03T15:27:10,914][INFO ][o.e.n.Node ] [USER-PC] version[7.
6.2], pid[23392], build[default/zip/ef48eb35cf30adf4db14086e8aabd07ef6fb113f/202
0-03-26T06:34:37.794943Z], OS[Windows 7/6.1/amd64], JVM[Oracle Corporation/Java
HotSpot(TM) 64-Bit Server VM/1.8.0_111/25.111-b14]
[2020-07-03T15:27:10,914][INFO ][o.e.n.Node ] [USER-PC] JVM home [
C:\Program Files\Java\jdk1.8.0_111\jre]
[2020-07-03T15:27:10,915][INFO ][o.e.n.Node ] [USER-PC] JVM argume
nts [-Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10
, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8,
-Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio
.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -D
io.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j
2.disable.jmx=true, -Djava.locale.providers=COMPAT, -Xms1g, -Xmx1g, -XX:+UseConc
MarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupan
cyOnly, -Djava.io.tmpdir=C:\Users\user\AppData\Local\Temp\elasticsearch, -XX:+He
apDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p
.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistributio
n, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRot
ation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -XX:MaxDirectMemorySize
=536870912, -Delasticsearch, -Des.path.home=E:\elastic_stack\elasticsearch\elast
icsearch-7.6.2, -Des.path.conf=E:\elastic_stack\elasticsearch\elasticsearch-7.6.
2\config, -Des.distribution.flavor=default, -Des.distribution.type=zip, -Des.bun
dled_jdk=true]
위 로그는 엘라스틱서치를 실행했을 때 나타난 로그로, node ID는 1BZ로 시작하는 무작위 값이고, cluster name은 elasticsearch라는 것을 확인 할 수 있다. cluster name이 동일할 경우 같은 클러스터로 인식할 수 있기 때문에 다른 목적 혹은 다른 환경일 경우 이름을 변경해야 한다.
클러스터의 이름을 변경하기 위해서는 위에서 node값을 변경할 때 설명한 elasticsearch.yml에서 cluster name을 변경하면 된다.
'빅데이터 및 DB > 검색엔진, 엘라스틱 스택' 카테고리의 다른 글
[엘라스틱서치] GET으로 데이터 가져오기 (0) | 2020.07.09 |
---|---|
[엘라스틱서치] 데이터를 입력하는 PUT과 POST 비교 (0) | 2020.07.09 |
[엘라스틱서치] 데이터 입력과 Index, Type, Document (0) | 2020.05.27 |
[키바나] 설치 및 엘라스틱서치 연동 (1) | 2020.04.23 |
엘라스틱 서치(Elasticsearch)를 써야 하는 8가지 이유 (1) | 2020.04.20 |