English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch está compuesto por muchos módulos, que son responsables de sus funciones. Estos módulos tienen dos tipos de configuraciones, como se muestra a continuación:
Configuraciones estáticas−Antes de iniciar Elasticsearch, es necesario configurar estas configuraciones en el archivo config(elasticsearch.yml). Debe actualizar todos los nodos de interés en el clúster para reflejar los cambios en estas configuraciones.
Configuraciones dinámicas −Estas configuraciones se pueden establecer en tiempo real en Elasticsearch.
Discutiremos los diferentes módulos de Elasticsearch en los siguientes capítulos de este capítulo.
Las configuraciones a nivel de clúster determinan la asignación de fragmentos a diferentes nodos y la redistribución de fragmentos para rebalancear el clúster. A continuación se presentan las configuraciones que controlan la asignación de fragmentos.
configuración | Valores posibles | Descripción |
---|---|---|
cluster.routing.allocation.enable | ||
all | Este valor por defecto permite la asignación de fragmentos para todos los tipos de fragmentos. | |
primaries | Sólo permite la asignación de fragmentos para el fragmento principal. | |
new_primaries | Sólo permite la asignación de fragmentos para el fragmento principal de un nuevo índice. | |
none | Esto no permite ninguna asignación de fragmentos. | |
cluster.routing.allocation.node_concurrent_recoveries | Valor numérico (por defecto)2) | Esto limita la cantidad de restauraciones de fragmentos concurrentes. |
cluster.routing.allocation.node_initial_primaries_recoveries | Número (por defecto4) | Esto limita la cantidad de restauraciones iniciales de primarios en paralelo. |
cluster.routing.allocation.same_shard.host | Valor booleano (por defecto false) | Esto limita el número de copias del mismo fragmento asignadas en el mismo nodo físico. |
index.recovery.concurrent_streams | Número (por defecto3) | Esto controla la cantidad de flujos de red abiertos por cada nodo durante la recuperación de fragmentos de pares. |
index.recovery.concurrent_small_file_streams | Número (por defecto2) | Esto puede controlar el tamaño inferior a5El número de flujos de red abiertos en cada nodo para los archivos pequeños de mb. |
cluster.routing.rebalance.enable | ||
all | Este valor por defecto permite equilibrar todos los tipos de fragmentos. | |
primaries | Esto solo permite el balanceo de fragmentos principales. | |
replicas | Esto solo permite el balanceo de fragmentos de copia. | |
none | Esto no permite ningún tipo de balanceo de fragmentos. | |
cluster.routing.allocation .allow_rebalance | ||
always | Este valor por defecto siempre permite el rebalanceo. | |
indexs_primaries_active | Esto permite el rebalanceo al asignar todos los fragmentos principales en el clúster. | |
Indices_all_active | Esto permite el rebalanceo al asignar todos los fragmentos principales y de copia. | |
cluster.routing.allocation.cluster _concurrent_rebalance | Número (por defecto2) | Esto limita el número de balanceos concurrentes de fragmentos en el clúster. |
cluster.routing.allocation .balance.shard | Valor de punto flotante (por defecto 0.45f) | Esto define el factor de peso del fragmento asignado a cada nodo. |
cluster.routing.allocation .balance.index | Valor de punto flotante (por defecto 0.55f) | Esto define la proporción del número de fragmentos de cada índice asignados en un nodo específico. |
cluster.routing.allocation .balance.threshold | Valor de punto flotante no negativo (por defecto1.0f) | Este es el valor de optimización mínimo que debe realizarse. |
configuración | Valores posibles | Descripción |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Valor booleano (por defecto true) | Esto activará y desactivará el programa de decisiones de asignación de disco. |
cluster.routing.allocation.disk.watermark.low | Valor de cadena (por defecto)85) | Esto indica la tasa de uso máxima del disco; después de esto, no se podrá asignar otras partes a ese disco. |
cluster.routing.allocation.disk.watermark.high | cadenas de caracteres (por defecto90%) | Esto indica la cantidad máxima de uso permitida en la asignación; si se alcanza este punto en la asignación, Elasticsearch asignará esa parte a otro disco. |
cluster.info.update.interval | cadenas de caracteres (por defecto30s) | Este es el intervalo entre dos comprobaciones de uso de disco. |
cluster.routing.allocation.disk.include_relocations | Valor booleano (por defecto true) | Esto determina si se considera el fragmento asignado actual al calcular la tasa de uso del disco. |
Este módulo ayuda a descubrir y mantener el estado de todos los nodos en el clúster. Cuando se agregan o eliminan nodos del clúster, el estado del clúster cambia. La configuración del nombre del clúster se utiliza para crear diferencias lógicas entre diferentes clústeres. Algunos módulos pueden ayudarlo a usar las API proporcionadas por los proveedores de nubes, como se muestra a continuación-
Descubrimiento de Azure
EC2Descubrimiento
Descubrimiento de Google Compute Engine
Descubrimiento Zen
Este módulo mantiene el estado del clúster y los datos de fragmentación durante el reinicio completo del clúster. A continuación se presentan las configuraciones estáticas de este módulo-
configuración | Valores posibles | Descripción |
---|---|---|
gateway.expected_nodes | Valor numérico (por defecto 0) | Número de nodos en el clúster utilizados para la recuperación de fragmentos locales. |
gateway.expected_master_nodes | Valor numérico (por defecto 0) | Número de nodos maestros esperados en el clúster antes de comenzar la recuperación. |
gateway.expected_data_nodes | Valor numérico (por defecto 0) | Número de nodos de datos esperados en el clúster antes de comenzar la recuperación. |
gateway.recover_after_time | Valor de cadena (por defecto)5m) | Este es el intervalo entre dos comprobaciones de uso de disco. |
cluster.routing.allocation. disk.include_relocations | Valor booleano (por defecto true) | Esto especifica el tiempo de espera antes de que comience el proceso de recuperación, independientemente del número de nodos que se unan al clúster. gateway.recover_after_nodes |
Este módulo gestiona la comunicación entre el cliente HTTP y la API de Elasticsearch. Puede desactivar este módulo cambiando el valor de http.enabled a false.
A continuación se presentan las configuraciones utilizadas para controlar este módulo (configuradas en el archivo elasticsearch.yml)-
Número de serie | Configuración y descripción |
---|---|
1 | http.port Este es el puerto para acceder a Elasticsearch, con un rango de9200-9300. |
2 | http.publish_port Este puerto se utiliza para el cliente HTTP, y también es muy útil en el caso de cortafuegos. |
3 | http.bind_host Esta es la dirección del host del servicio HTTP. |
4 | http.publish_host Esta es la dirección del host del cliente HTTP. |
5 | http.max_content_length Esto es el tamaño máximo permitido para el contenido de la solicitud HTTP. Su valor predeterminado es100mb. |
6 | http.max_initial_line_length This is the maximum size of the URL, with the default value being4kb. |
7 | http.max_header_size This is the maximum size of the http header, with the default value being8kb. |
8 | http.compression This will enable or disable support for compression, with the default value being false. |
9 | http.pipelinig This will enable or disable HTTP pipelining. |
10 | http.pipelining.max_events This limits the number of events to be queued before closing the HTTP request. |
This module maintains the settings for each index globally. The following settings are mainly related to memory usage-
This is used to prevent operations from causing OutOfMemoryError. This setting mainly limits the JVM heap size. For example, the indexs.breaker.total.limit setting, by default, is the JVM heap size70%.
Mainly used when aggregating on fields. It is recommended to have enough memory to allocate it. The index.fielddata.cache.size setting can be used to control the amount of memory used for field data caching.
This memory is used to cache query results. The cache uses the least recently used (LRU) eviction policy. The Indices.queries.cache.size setting controls the memory size of this cache.
This buffer stores newly created documents in the index and refreshes them when the buffer is full. Settings like indexs.memory.index_buffer_size control the number of heaps allocated to this buffer.
This cache is used to store local search data for each shard. It can be enabled during index creation or disabled by sending URL parameters.
Disable cache - ?request_cache = true Enable cache "index.requests.cache.enable": true
It controls resources during the recovery process. The following settings are provided-
configuración | valor predeterminado |
---|---|
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 |
El intervalo de tiempo de vida (TTL) define el tiempo del documento, después del cual se eliminará el documento. A continuación se muestra la configuración dinámica utilizada para controlar este proceso-
configuración | valor predeterminado |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
Cada nodo puede elegir si es un nodo de datos. Puede cambiar esta propiedad modificando la configuración node.data. Establecer este valor en false definirá que el nodo no es un nodo de datos.