English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.shard | Floating-point value (по умолчанию 0.45f) | Это определяет весовой фактор фрагментов, распределенных на каждый узел. |
cluster.routing.allocation .balance.index | Floating-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 |
Этот модуль управляет коммуникацией между клиентом 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_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, определяем, что узел не является узлом данных.