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

Модули Elasticsearch

Elasticsearch состоит из множества модулей, которые отвечают за его функции. У этих модулей есть два типа настроек, как показано ниже:

  • Статические настройкиПрежде чем запустить Elasticsearch, необходимо настроить эти параметры в файле config(elasticsearch.yml). Вам нужно обновить все наблюдаемые узлы в кластере, чтобы отразить изменения в настройках.

  • Динамические настройки Эти настройки можно установить на работающем Elasticsearch в реальном времени.

Мы будем обсуждать различные модули Elasticsearch в следующих разделах этой главы.

Уровень кластера маршрутизации и распределения фрагментов

Уровень кластера настроек определяет распределение фрагментов между различными узлами и перераспределение фрагментов для реэquilibration кластера. Вот настройки, контролирующие распределение фрагментов.

Уровень кластера распределения фрагментов

НастройкаВозможные значенияОписание
cluster.routing.allocation.enable

all

Этот defaultный параметр позволяет распределить фрагменты для всех типов фрагментов.

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)

Это позволяет контролировать количество потоков, открываемых на каждом узле, для файлов размером менее 5 МБ во время восстановления фрагментов.

cluster.routing.rebalance.enable

all

Этот默认ный параметр позволяет балансировать все типы фрагментов.

primaries

Это позволяет только балансировку основных фрагментов.

replicas

Это позволяет только балансировку фрагментов резервных копий.

none

Это не позволяет никакой формы балансировки фрагментов.

cluster.routing.allocation .allow_rebalance

always

Этот default всегда позволяет заново распределить.

indexs_primaries_active

Это позволяет заново распределить все основные фрагменты в кластере.

Indices_all_activeЭто позволяет заново распределить все основные и резервные фрагменты.
cluster.routing.allocation.cluster _concurrent_rebalanceЧисловое значение (по умолчанию 2)

Это ограничивает количество параллельных фрагментов в кластере.

cluster.routing.allocation .balance.shardFloating-point value (по умолчанию 0.45f)

Это определяет весовой фактор фрагментов, распределенных на каждый узел.

cluster.routing.allocation .balance.indexFloating-point value (по умолчанию 0.55f)

Это определяет коэффициент отношения количества фрагментов каждого индекса, распределенных на определенный узел.

cluster.routing.allocation .balance.thresholdНенegative floating-point value (по умолчанию 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 Compute Engine

  • Обнаружение 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 и API Elasticsearch. Этот модуль можно отключить, установив значение http.enabled в false.

Ниже приведены настройки, используемые для управления этим модулем (настройки в elasticsearch.yml)

НомерУстановки и описание
1

http.port

Это порт для доступа к Elasticsearch, диапазон 9200-9300.

2

http.publish_port

Этот порт используется для клиентов http, также полезен в случае防火walls.

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 запроса.

Индекс

Этот модуль поддерживает настройки, установленные глобально для каждого индекса. Следующие настройки principalmente связаны с использованием памяти -

Брекер

Это используется для предотвращения OutOfMemoryError при выполнении операций. Эта настройка principalmente ограничивает размер JVM heap. Например, настройка indexs.breaker.total.limit, по умолчанию 70% от размера JVM heap.

Кэш данных поля

Используется principalmente при агрегации по полям. Рекомендуется иметь достаточное количество памяти для его分配. Можно контролировать количество памяти для кэширования данных поля с помощью настройки index.fielddata.cache.size.

Кэш запросов узла

Эта память используется для кэширования результатов запросов. Кэш использует стратегию驱逐 LRU. Настройка Indices.queries.cache.size контролирует размер памяти этого кэша.

Буфер индекса

Этот буфер хранит новые документы в индексе и обновляет их, когда буфер заполнен. Настройки, такие как indexs.memory.index_buffer_size, контролируют количество heap, выделенное для этого буфера.

Кэш запросов раздела

Этот кэш используется для хранения локальных данных поиска каждого раздела. Кэш можно включить во время создания индекса, а также можно отключить, отправив параметр URL.

Отключить кэш - request_cache = true
Включить кэш "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, определяем, что узел не является узлом данных.