English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 |
该模块管理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_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | true |
indices.recovery.max_bytes_per_sec | 40mb |
生存 시간(TTL) 간격은 문서의 시간을 정의하고, 이 시간이 지나면 해당 문서가 삭제됩니다. 이 과정을 제어하는 데 사용되는 동적 설정은 다음과 같습니다.-
설정 | 기본 값 |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
각 노드는 데이터 노드가 되는지 선택할 수 있습니다. node.data 설정을 변경하여 이 속성을 변경할 수 있습니다. 이 값을 false로 설정하면 해당 노드가 데이터 노드가 아님을 정의합니다.