Elasticsearch состоит из ряда модулей, которые отвечают за его функциональность. Эти модули имеют следующие два типа настроек —
-
Статические настройки — эти параметры необходимо настроить в файле config (asticsearch.yml) перед запуском Elasticsearch. Необходимо обновить все узлы концерна в кластере, чтобы отразить изменения этих параметров.
-
Динамические настройки — эти настройки могут быть установлены на активном Elasticsearch.
Статические настройки — эти параметры необходимо настроить в файле config (asticsearch.yml) перед запуском Elasticsearch. Необходимо обновить все узлы концерна в кластере, чтобы отразить изменения этих параметров.
Динамические настройки — эти настройки могут быть установлены на активном Elasticsearch.
Мы обсудим различные модули Elasticsearch в следующих разделах этой главы.
Маршрутизация на уровне кластера и распределение осколков
Настройки уровня кластера определяют распределение сегментов для разных узлов и перераспределение сегментов для перебалансировки кластера. Это следующие настройки для управления распределением сегментов —
Распределение осколков на уровне кластера
настройка | Возможное значение | Описание |
---|---|---|
cluster.routing.allocation.enable | ||
все | Это значение по умолчанию разрешает распределение фрагментов для всех видов фрагментов. | |
праймериз | Это позволяет распределять осколки только для первичных осколков. | |
new_primaries | Это позволяет распределять сегменты только для основных сегментов для новых индексов. | |
никто | Это не позволяет распределять осколки. | |
cluster.routing.allocation .node_concurrent_recoveries | Числовое значение (по умолчанию 2) | Это ограничивает количество одновременного восстановления осколка. |
cluster.routing.allocation .node_initial_primaries_recoveries | Числовое значение (по умолчанию 4) | Это ограничивает количество параллельных начальных первичных восстановлений. |
cluster.routing.allocation .same_shard.host | Логическое значение (по умолчанию false) | Это ограничивает размещение более одной реплики одного и того же шарда в одном физическом узле. |
indices.recovery.concurrent _streams | Числовое значение (по умолчанию 3) | Это контролирует количество открытых сетевых потоков на узел во время восстановления сегментов от одноранговых сегментов. |
indices.recovery.concurrent _small_file_streams | Числовое значение (по умолчанию 2) | Это контролирует количество открытых потоков на узел для небольших файлов, имеющих размер менее 5 Мб во время восстановления сегмента. |
cluster.routing.rebalance.enable | ||
все | Это значение по умолчанию позволяет балансировать для всех видов шардов. | |
праймериз | Это позволяет балансировать осколки только для основных осколков. | |
реплики | Это позволяет балансировать осколки только для осколков реплики. | |
никто | Это не допускает какой-либо балансировки осколков. | |
cluster.routing.allocation .allow_rebalance | ||
всегда | Это значение по умолчанию всегда позволяет перебалансировать. | |
indices_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 | Строковое значение (по умолчанию 30 с) | Это интервал между проверками использования диска. |
cluster.routing.allocation .disk.include_relocations | Логическое значение (по умолчанию true) | Это решает, следует ли учитывать сегменты, выделяемые в данный момент, при расчете использования диска. |
открытие
Этот модуль помогает кластеру обнаруживать и поддерживать состояние всех узлов в нем. Состояние кластера изменяется, когда узел добавляется или удаляется из кластера. Параметр имени кластера используется для создания логической разницы между различными кластерами. Есть несколько модулей, которые помогают вам использовать API, предоставляемые поставщиками облачных решений, а именно:
- Лазурное открытие
- EC2 открытие
- Google Compute Engine Discovery
- Открытие дзен
шлюз
Этот модуль поддерживает состояние кластера и данные сегмента при полной перезагрузке кластера. Ниже приведены статические настройки этого модуля —
настройка | Возможное значение | Описание |
---|---|---|
gateway.expected_ узлы | числовое значение (по умолчанию 0) | Число узлов, которые должны находиться в кластере для восстановления локальных сегментов. |
gateway.expected_ master_nodes | числовое значение (по умолчанию 0) | Число главных узлов, которые должны находиться в кластере до начала восстановления. |
gateway.expected_ data_nodes | числовое значение (по умолчанию 0) | Число ожидаемых узлов данных в кластере до начала восстановления. |
gateway.recover_ after_time | Строковое значение (по умолчанию 5м) | Это указывает время, в течение которого процесс восстановления будет ожидать запуска, независимо от количества узлов, подключенных в кластере.
|
HTTP
Этот модуль управляет связью между HTTP-клиентом и API Elasticsearch. Этот модуль можно отключить, изменив значение http.enabled на false. Ниже приведены настройки (настроенные вasticsearch.yml) для управления этим модулем.
Sr.No | Настройка и описание |
---|---|
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. Его значение по умолчанию составляет 100 МБ. |
6 |
http.max_initial_line_length Это максимальный размер URL, и его значение по умолчанию составляет 4 КБ. |
7 |
http.max_header_size Это максимальный размер заголовка http, и его значение по умолчанию составляет 8 КБ. |
8 |
http.compression Это включает или отключает поддержку сжатия, и его значением по умолчанию является false. |
9 |
http.pipelinig Это включает или отключает HTTP конвейерную обработку. |
10 |
http.pipelining.max_events Это ограничивает количество событий, которые должны быть поставлены в очередь перед закрытием HTTP-запроса. |
http.port
Это порт для доступа к Elasticsearch, и он варьируется от 9200 до 9300.
http.publish_port
Этот порт предназначен для клиентов http и также полезен в случае брандмауэра.
http.bind_host
Это адрес хоста для службы http.
http.publish_host
Это адрес хоста для http-клиента.
http.max_content_length
Это максимальный размер содержимого в запросе http. Его значение по умолчанию составляет 100 МБ.
http.max_initial_line_length
Это максимальный размер URL, и его значение по умолчанию составляет 4 КБ.
http.max_header_size
Это максимальный размер заголовка http, и его значение по умолчанию составляет 8 КБ.
http.compression
Это включает или отключает поддержку сжатия, и его значением по умолчанию является false.
http.pipelinig
Это включает или отключает HTTP конвейерную обработку.
http.pipelining.max_events
Это ограничивает количество событий, которые должны быть поставлены в очередь перед закрытием HTTP-запроса.
индексы
Этот модуль поддерживает настройки, которые установлены глобально для каждого индекса. Следующие настройки в основном связаны с использованием памяти —
Выключатель
Это используется для предотвращения возникновения операции OutOfMemroyError. Этот параметр в основном ограничивает размер кучи JVM. Например, параметр indices.breaker.total.limit, который по умолчанию равен 70% кучи JVM.
Кэш полевых данных
Это используется в основном при агрегировании на поле. Рекомендуется иметь достаточно памяти, чтобы выделить его. Объем памяти, используемой для кэширования полевых данных, можно контролировать с помощью параметра indices.fielddata.cache.size.
Node Query Cache
Эта память используется для кэширования результатов запроса. Этот кэш использует политику выселения из недавно использованных (LRU). Параметр Indices.queries.cahce.size контролирует объем памяти этого кэша.
Индексный буфер
Этот буфер хранит вновь созданные документы в индексе и очищает их, когда буфер заполнен. Установка как indices.memory.index_buffer_size контролирует количество кучи, выделенной для этого буфера.
Кеш запроса Shard
Этот кеш используется для хранения локальных данных поиска для каждого шарда. Кеш можно включить при создании индекса или отключить, отправив параметр URL.
Disable cache - ?request_cache = true Enable 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 | правда |
indices.recovery.max_bytes_per_sec | 40MB |
TTL Интервал
Интервал времени жизни (TTL) определяет время документа, после которого документ удаляется. Ниже приведены динамические настройки для управления этим процессом —
настройка | Значение по умолчанию |
---|---|
indices.ttl.interval | 60-е годы |
indices.ttl.bulk_size | 1000 |
Узел
Каждый узел имеет возможность быть узлом данных или нет. Вы можете изменить это свойство, изменив параметр node.data . Установка значения как ложного определяет, что узел не является узлом данных.