English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch 모듈

Elasticsearch는 많은 모듈로 구성되어 있으며, 이 모듈은 기능을 담당합니다. 이 모듈은 다음과 같은 두 가지 유형의 설정을 가집니다:

  • 정적 설정−Elasticsearch를 시작하기 전에 config(elasticsearch.yml) 파일에서 이 설정을 구성해야 합니다. 이 설정 변경을 반영하기 위해 클러스터의 모든 관심 노드를 업데이트해야 합니다.

  • 동적 설정 −이 설정은 실시간 Elasticsearch에서 설정할 수 있습니다.

이 장에서는 Elasticsearch의 다른 모듈을 다룹니다.

클러스터 수준 라우팅과 슬라이스 할당

클러스터 수준 설정은 조각을 다른 노드에 할당하고 클러스터를 재균형화하기 위해 조각을 재할당하는 것을 결정합니다. 조각 할당을 제어하는 설정은 다음과 같습니다.

클러스터 수준 조각 할당

설정可能的值描述
cluster.routing.allocation.enable

all

이 기본 값은 모든 유형의 조각에 조각을 할당하는 것을 허용합니다.

primaries

이는 메인 조각에 조각을 할당하는 것만 허용합니다.

new_primaries

이는 새 인덱스의 메인 조각에 조각을 할당하는 것만 허용합니다.

none

이는 어떤 조각 할당도 허용하지 않습니다.

cluster.routing.allocation.node_concurrent_recoveries

숫자(기본 값이)2)

이는 병行的 조각 복구의 수를 제한합니다.

cluster.routing.allocation.node_initial_primaries_recoveries숫자(기본)4)

이는 병行的 초기 메인 복구의 수를 제한합니다.

cluster.routing.allocation.same_shard.host부울 값(기본值为false)

이는 동일한 물리 노드에서 동일한 슬라이스의 여러 복사본을 할당하는 것을 제한합니다.

index.recovery.concurrent_streams숫자(기본)3)

이는 피어 조각에서 조각을 복구할 때 각 노드에서 열리는 네트워크 스트림의 수를 제어합니다.

index.recovery.concurrent_small_file_streams숫자(기본)2)

이는 조각 복구 시 크기가5mb의 소형 파일이 각 노드에서 열리는 스트림의 수.

cluster.routing.rebalance.enable

all

이 기본 값은 모든 유형의 스플릿을 밸런스하는 것을 허용합니다.

primaries

이는 메인 스플릿에 대한 스플릿 밸런싱만 허용합니다.

replicas

이는 백업 스플릿에 대한 스플릿 밸런싱만 허용합니다.

none

이는 어떠한 형태의 스플릿 밸런스도 허용하지 않습니다.

cluster.routing.allocation .allow_rebalance

always

이 기본 값은 항상 재밸런싱을 허용합니다.

indexs_primaries_active

이는 클러스터의 모든 메인 스플릿을 할당할 때 재밸런싱을 허용합니다.

Indices_all_active이는 모든 메인 스플릿과 백업 스플릿을 할당할 때 재밸런싱을 허용합니다.
cluster.routing.allocation.cluster _concurrent_rebalance숫자(기본)2)

이는 클러스터에서 동시에 발생하는 스플릿 밸런스의 수를 제한합니다.

cluster.routing.allocation .balance.shard부호자리수 실수(기본으로 0)45f)

이는 각 노드에 할당된 스플릿의 가중치 계수를 정의합니다.

cluster.routing.allocation .balance.index부호자리수 실수(기본으로 0)55f)

이는 특정 노드에 할당된 각 인덱스의 스플릿 수의 비율을 정의합니다.

cluster.routing.allocation .balance.threshold비음수 부호가 있는 부호자리수 실수(기본)1.0f)

이는 수행해야 할 작업의 최소 최적화 값입니다.

디스크 기반 스플릿 할당

설정可能的值描述
cluster.routing.allocation.disk.threshold_enabled

布尔值(默认为true)

이는 디스크 할당 결정 프로그램을 활성화하고 비활성화합니다.
cluster.routing.allocation.disk.watermark.low

字符串值(默认为85%)

이는 디스크의 최대 사용률을 의미합니다; 이 후로는 해당 디스크에 다른 스플릿을 할당할 수 없습니다.
cluster.routing.allocation.disk.watermark.high

문자 값(기본으로)90%)

이는 할당 시 최대 사용량을 의미합니다; 할당 시 이 점에 도달하면 Elasticsearch는 해당 스플릿을 다른 디스크에 할당합니다.
cluster.info.update.interval

문자 값(기본)30s)

这是两次磁盘使用情况检查之间的间隔。
cluster.routing.allocation.disk.include_relocations

布尔值(默认情况下为 true)

这决定了在计算磁盘使用率时是否考虑当前分配的分片。

发现

这个模块帮助集群发现并维护集群中所有节点的状态。当从集群中添加或删除节点时,集群的状态会发生变化。集群名称设置用于创建不同集群之间的逻辑差异。有一些模块可以帮助您使用云供应商提供的API,如下所示-

  • Azure发现

  • EC2发现

  • Google计算引擎发现

  • 禅Zen发现

网关

该模块在整个集群重新启动时维护集群状态和分片数据。以下是该模块的静态设置-

설정可能的值描述
gateway.expected_nodes

数值(默认为0)

群集中用于恢复本地分片的节点数。
gateway.expected_master_nodes

数值(默认为0)

开始恢复之前,预期在群集中的主节点数。
gateway.expected_data_nodes

数值(默认为0)

开始恢复之前,群集中预期的数据节点数。
gateway.recover_after_time

字符串值(默认为5m)

这是两次磁盘使用情况检查之间的间隔。
cluster.routing.allocation. disk.include_relocations

布尔值(默认为true)

这指定了恢复过程将等待开始的时间,而不管群集中加入的节点数量如何。

gateway.recover_after_nodes
gateway.recover_after_master_nodes
gateway.recover_after_data_nodes

HTTP

该模块管理HTTP客户端和Elasticsearch API之间的通信。可以通过将值更改http.enabled为false来禁用此模块。

以下是用于控制此模块的设置(在elasticsearch.yml中配置)-

序号设定与说明
1

http.port

这是访问Elasticsearch的端口,范围为9200-9300。

2

http.publish_port

此端口用于http客户端,在防火墙的情况下也很有用。

3

http.bind_host

这是 http 服务的主机地址。

4

http.publish_host

这是http客户机的主机地址。

5

http.max_content_length

这是http请求中内容的最大大小。它的默认值是100mb.

6

http.max_initial_line_length

이는 URL의 최대 크기입니다. 기본값은4kb.

7

http.max_header_size

이는 http 헤더의 최대 크기입니다. 기본값은8kb.

8

http.compression

이는 압축 지원을 활성화하거나 비활성화합니다. 기본값은 false입니다.

9

http.pipelinig

이는 HTTP 파이핑을 활성화하거나 비활성화합니다.

10

http.pipelining.max_events

이는 HTTP 요청을 닫기 전에 대기할 이벤트 수를 제한합니다.

색인

이 모듈은 각 색인에 대한 전체 설정을 유지합니다. 다음 설정은 메모리 사용과 관련이 있습니다.-

브레이커

이는 OutOfMemoryError를 유발하는 작업을 방지하기 위해 사용됩니다. 이 설정은 주로 JVM 스택 크기를 제한합니다. 예를 들어, indexs.breaker.total.limit 설정은 기본적으로 JVM 스택의70%.

필드 데이터 캐시

필드에 집계할 때 사용되는 것이 주로입니다. 충분한 메모리를 할당하는 것이 좋습니다. fielddata.cache.size 설정을 사용하여 필드 데이터 캐시의 메모리 양을 제어할 수 있습니다.

노드 쿼리 캐시

이 메모리는 쿼리 결과를 캐시에 사용합니다. 이 캐시는 최근 최소 사용(LRU)驱逐 전략을 사용합니다. Indices.queries.cache.size 설정은 이 캐시의 메모리 크기를 제어합니다.

색인 버퍼

이 버퍼는 새로 생성된 문서를 색인에 저장하고, 버퍼가 가득 차면 새로 고칩니다. indexs.memory.index_buffer_size와 같은 설정은 이 버퍼에 할당된 스택의 양을 제어합니다.

스플릿 요청 캐시

이 캐시는 각 스플릿의 로컬 검색 데이터를 저장합니다. 색인 생성 중에 캐시를 활성화할 수 있으며, URL 파라미터를 통해 캐시를 비활성화할 수 있습니다.

cache 비활성화 - ?request_cache = true
cache "index.requests.cache.enable": true 활성화

색인 복구

그것은 복구 과정에서 자원을 제어합니다. 다음은 설정입니다-

설정기본 값
indices.recovery.concurrent_streams3
indices.recovery.concurrent_small_file_streams2
indices.recovery.file_chunk_size512kb
indices.recovery.translog_ops1000
indices.recovery.translog_size512kb
indices.recovery.compresstrue
indices.recovery.max_bytes_per_sec40mb

TTL 간격

生存 시간(TTL) 간격은 문서의 시간을 정의하고, 이 시간이 지나면 해당 문서가 삭제됩니다. 이 과정을 제어하는 데 사용되는 동적 설정은 다음과 같습니다.-

설정기본 값
indices.ttl.interval60s
indices.ttl.bulk_size1000

노드

각 노드는 데이터 노드가 되는지 선택할 수 있습니다. node.data 설정을 변경하여 이 속성을 변경할 수 있습니다. 이 값을 false로 설정하면 해당 노드가 데이터 노드가 아님을 정의합니다.