English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch由许多模块组成,这些模块负责其功能。这些模块具有两种类型的设置,如下所示:
静态设置−在启动Elasticsearch之前,需要在config(elasticsearch.yml)文件中配置这些设置。您需要更新集群中的所有关注节点,以反映这些设置的更改。
动态设置 −这些设置可以在实时Elasticsearch上进行设置。
我们将在本章以下各节中讨论Elasticsearch的不同模块。
集群级设置决定将碎片分配给不同的节点,并重新分配碎片以重新平衡集群。以下是控制碎片分配的设置。
设置 | Mögliche Werte | Beschreibung |
---|---|---|
cluster.routing.allocation.enable | ||
all | 此默认值允许为所有类型的碎片分配碎片。 | |
primaries | 这只允许为主碎片分配碎片。 | |
new_primaries | 这只允许为新索引的主碎片分配碎片。 | |
none | 这不允许任何碎片分配。 | |
cluster.routing.allocation.node_concurrent_recoveries | 数值(默认值为2) | 这限制了并发碎片恢复的数量。 |
cluster.routing.allocation.node_initial_primaries_recoveries | Zahl (Standard)4) | 这限制了并行初始主恢复的数量。 |
cluster.routing.allocation.same_shard.host | 布尔值(默认为false) | 这限制了在同一物理节点中分配同一分片的多个副本。 |
index.recovery.concurrent_streams | Zahl (Standard)3) | 这控制从对等碎片恢复碎片时每个节点打开的网络流的数量。 |
index.recovery.concurrent_small_file_streams | Zahl (Standard)2) | 这可以控制碎片恢复时大小小于5mb的小文件在每个节点上打开的流的数量。 |
cluster.routing.rebalance.enable | ||
all | Dieser Standardwert erlaubt die Ausgewogenheit aller Shard-Typen. | |
primaries | Das erlaubt nur die Shard-Ausgewogenheit für Primärshards. | |
replicas | Das erlaubt nur die Shard-Ausgewogenheit für Sekundärshards. | |
none | Das erlaubt keine Form der Shard-Ausgewogenheit. | |
cluster.routing.allocation .allow_rebalance | ||
always | Dieser Standardwert erlaubt die Neuausgewogenheit stets. | |
indexs_primaries_active | Das ermöglicht die Neuausgewogenheit bei der Zuweisung aller primären Shards im Cluster. | |
Indices_all_active | Das ermöglicht die Neuausgewogenheit bei der Zuweisung aller primären und sekundären Shards. | |
cluster.routing.allocation.cluster _concurrent_rebalance | Zahl (Standard)2) | Das begrenzt die Anzahl der gleichzeitig im Cluster ausgeglichenen Shards. |
cluster.routing.allocation .balance.shard | Gleitkommazahl (Standard 0.)45f) | Das definiert den Gewichtungsfaktor für die Shards, die jedem Knoten zugewiesen werden. |
cluster.routing.allocation .balance.index | Gleitkommazahl (Standard 0.)55f) | Das definiert das Verhältnis der Anzahl der Shards, die auf einem bestimmten Knoten zugewiesen werden, zu der Anzahl der Shards eines bestimmten Indexes. |
cluster.routing.allocation .balance.threshold | Nichtnegative Gleitkommazahl (Standard)1.0f) | Das ist der minimale Optimierungsgrad für die auszuführende Aktion. |
设置 | Mögliche Werte | Beschreibung |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Boolescher Wert (Standardwert true) | Das aktiviert und deaktiviert die Disk-Zuweisungsentscheidungsprogramme. |
cluster.routing.allocation.disk.watermark.low | Zeichenkettenwert (Standardwert)85%) | Das bedeutet die maximale Nutzung des Speichermediums; danach kann kein weiterer Shard diesem Speichermedium zugewiesen werden. |
cluster.routing.allocation.disk.watermark.high | Zeichenwert (Standard)90%) | Das bedeutet, dass die maximale Nutzung bei der Zuweisung erreicht wird; wenn dies bei der Zuweisung erreicht wird, dann wird Elasticsearch diese Shard an einen anderen Speichermedium zuweisen. |
cluster.info.update.interval | Zeichenwert (Standard)30s) | Dies ist der Intervall zwischen zwei Überprüfungen der Disknutzung. |
cluster.routing.allocation.disk.include_relocations | Boolescher Wert (Standardmäßig true) | Dies entscheidet darüber, ob bei der Berechnung des Disknutzungsprozentsatzes die derzeit zugewiesenen Splits berücksichtigt werden sollen. |
Dieser Modul hilft der Gruppe, alle Knotenstatus in der Gruppe zu entdecken und zu verwalten. Wenn Knoten aus der Gruppe hinzugefügt oder entfernt werden, ändert sich der Status der Gruppe. Die Clustername-Einstellungen werden verwendet, um logische Unterschiede zwischen verschiedenen Clustern zu erstellen. Einige Module helfen Ihnen, die von den Cloud-Anbietern bereitgestellten API zu verwenden, wie folgt-
Azure Discovery
EC2Discovery
Google Compute Engine Discovery
Zen Discovery
Dieses Modul verwaltet den Clusterstatus und die Splitdaten während des Neustarts des gesamten Clusters. Nachstehend sind die statischen Einstellungen dieses Moduls aufgeführt-
设置 | Mögliche Werte | Beschreibung |
---|---|---|
gateway.expected_nodes | Numerischer Wert (Standardwert 0) | Die Anzahl der Knoten in der Gruppe, die für die Wiederherstellung lokaler Splits verwendet werden. |
gateway.expected_master_nodes | Numerischer Wert (Standardwert 0) | Die erwartete Anzahl der Masterknoten in der Gruppe vor dem Beginn der Wiederherstellung. |
gateway.expected_data_nodes | Numerischer Wert (Standardwert 0) | Die erwartete Anzahl der Datenknoten in der Gruppe vor dem Beginn der Wiederherstellung. |
gateway.recover_after_time | Zeichenkettenwert (Standardwert)5m) | Dies ist der Intervall zwischen zwei Überprüfungen der Disknutzung. |
cluster.routing.allocation. disk.include_relocations | Boolescher Wert (Standardwert true) | Dies legt die Zeit fest, zu der der Wiederherstellungsprozess beginnen soll, unabhängig von der Anzahl der in der Gruppe hinzugefügten Knoten. gateway.recover_after_nodes |
Dieses Modul verwaltet die Kommunikation zwischen dem HTTP-Client und der Elasticsearch-API. Dieses Modul kann durch Ändern des Wertes von http.enabled in false deaktiviert werden.
Nachstehend sind die Einstellungen zur Steuerung dieses Moduls aufgeführt (in der elasticsearch.yml konfiguriert)-
Nummer | Einstellungen und Anleitungen |
---|---|
1 | http.port Dies ist der Port für den Zugriff auf Elasticsearch, der Bereich beträgt9200-9300. |
2 | http.publish_port Dieser Port wird für den HTTP-Client verwendet und ist im Falle von Firewall-Einschränkungen auch sehr nützlich. |
3 | http.bind_host Dies ist die Hauptadresse des HTTP-Dienstes. |
4 | http.publish_host Dies ist die Hauptadresse des HTTP-Client-Hosts. |
5 | http.max_content_length Dies ist die maximale Größe des Inhalts in einer HTTP-Anfrage. Der Standardwert beträgt100mb. |
6 | http.max_initial_line_length Dies ist die maximale Größe der URL, der Standardwert ist4kb. |
7 | http.max_header_size Dies ist die maximale Größe des HTTP-Headers, der Standardwert ist8kb. |
8 | http.compression Dies aktiviert oder deaktiviert die Unterstützung für Komprimierung, der Standardwert ist false. |
9 | http.pipelinig Dies aktiviert oder deaktiviert das HTTP-Pipelineing. |
10 | http.pipelining.max_events Dies begrenzt die Anzahl der zu排队的 Ereignisse, bevor die HTTP-Anfragen geschlossen werden. |
Dieser Modul verwaltet die globalen Einstellungen für jeden Index. Die folgenden Einstellungen haben hauptsächlich mit der Speicherverwendung zu tun-
Dies wird verwendet, um OutOfMemoryError durch Operationen zu verhindern. Diese Einstellung begrenzt hauptsächlich die Größe des JVM-Heaps. Zum Beispiel die Einstellung indexs.breaker.total.limit, die standardmäßig die Größe des JVM-Heaps ist70%.
Wird hauptsächlich verwendet, wenn Aggregationen auf Feldern verwendet werden. Es wird empfohlen, ausreichend Speicher zur Verfügung zu stellen. Die Einstellung index.fielddata.cache.size kann verwendet werden, um die Menge des Speichers für das Feld-Daten-Caching zu steuern.
Diese Speicherkapazität wird verwendet, um Abfrageergebnisse zu cachen. Der Cache verwendet das Least-Recently-Used (LRU) Eviction-Strategy. Die Einstellung Indices.queries.cache.size steuert die Größe des Caches im Speicher.
Dieser Puffer speichert neu erstellte Dokumente im Index und aktualisiert sie, wenn der Puffer voll ist. Einstellungen wie indexs.memory.index_buffer_size steuern die Anzahl der Heap-Blöcke, die für diesen Puffer zugewiesen werden.
Dieser Cache wird verwendet, um lokale Suchdaten jeder Teilung zu speichern. Der Cache kann während der Erstellung des Indexes aktiviert werden oder kann durch Senden eines URL-Parameters deaktiviert werden.
Cache deaktivieren - ?request_cache = true Aktivieren Sie den Cache "index.requests.cache.enable": true
Es kontrolliert Ressourcen während des Wiederherstellungsprozesses. Nachfolgend sind die Einstellungen-
设置 | 默认值 |
---|---|
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 将定义该节点不是数据节点。