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

Elasticsearch モジュール

Elasticsearchは多くのモジュールで構成されており、これらのモジュールは機能を担当します。これらのモジュールには以下の2つの種類の設定があります:

  • 静的設定−Elasticsearchを起動する前に、config(elasticsearch.yml)ファイルでこれらの設定を構成する必要があります。設定の変更を反映するために、クラスタ内のすべての注目ノードを更新する必要があります。

  • 動的設定 −これらの設定はリアルタイムのElasticsearchで設定できます。

以下の各節でElasticsearchの異なるモジュールについて説明します。

クラスタレベルのルーティングと分片割り当て

クラスタレベルの設定は、分片を異なるノードに割り当て、クラスタの再バランスを取るために分片を再割り当てることを決定します。以下は分片割り当てを制御する設定です。

クラスタレベルの分片割り当て

設定可能な値説明
cluster.routing.allocation.enable

all

このデフォルト値では、すべての種類の分片に対する割り当てが許可されます。

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

このデフォルト値は常に再バランスを許可します。

indexs_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

文字値(デフォルト30s)

これは2回のディスク使用状況チェックの間隔です。
cluster.routing.allocation.disk.include_relocations

ボルン値(デフォルトでは true)

これは、現在割り当てられているシェードを考慮してディスク使用率を計算するかどうかを決定します。

ディスコバリー

このモジュールはクラスタ内のすべてのノードの状態を検出し、維持するのに役立ちます。クラスタからノードを追加または削除すると、クラスタの状態が変更されます。クラスタ名の設定は、異なるクラスタ間の論理的な違いを作成するために使用されます。以下のAPIを使用して、クラスタを管理するモジュールがあります-

  • Azureディスコバリー

  • EC2ディスコバリー

  • Googleコンピュートエンジンディスコバリー

  • 禅Zenディスコバリー

ゲートウェイ

このモジュールはクラスタ全体の再起動時にクラスタの状態とシェードデータを維持します。以下はこのモジュールの静的設定です-

設定可能な値説明
gateway.expected_nodes

数値(デフォルトは0)

クラスタ内でリカバリを行うローカルシェードを含むノードの数です。
gateway.expected_master_nodes

数値(デフォルトは0)

リカバリを開始する前に、クラスタ内で予期されるマスターノードの数です。
gateway.expected_data_nodes

数値(デフォルトは0)

リカバリを開始する前に、クラスタ内で予期されるデータノードの数です。
gateway.recover_after_time

文字列値(デフォルトは5m)

これは2回のディスク使用状況チェックの間隔です。
cluster.routing.allocation. disk.include_relocations

ボルン値(デフォルトはtrue)

これはリカバリプロセスが開始するまでの待機時間を指定します。クラスタに参加するノードの数に関わらずです。

gateway.recover_after_nodes
gateway.recover_after_master_nodes
gateway.recover_after_data_nodes

HTTP

このモジュールはHTTPクライアントとElasticsearch API間の通信を管理します。このモジュールを無効にするには、http.enabledをfalseに変更できます。

以下はこのモジュールを制御する設定(elasticsearch.ymlに設定)です-

番号設定と説明
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リクエストの内容の最大サイズです。デフォルト値は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リクエストを閉じる前にキューに並ぶイベント数を制限します。

インデックス

このモジュールは各インデックスのグローバル設定を維持します。以下の設定は主にメモリ使用に関連しています-

ブレーカー

これは操作がOutOfMemoryErrorを引き起こすのを防ぐために使用されます。この設定は主にJVMヒープのサイズを制限します。例えば、indexs.breaker.total.limit設定は、デフォルトでJVMヒープの70%。

フィールドデータキャッシュ

主にフィールド上での集計に使用されます。十分なメモリを割り当てることを推奨します。index.fielddata.cache.size設定を使用して、フィールドデータキャッシュのメモリ量を制御できます。

ノードクエリキャッシュ

このメモリはクエリ結果をキャッシュするために使用されます。このキャッシュは最も最近に使用された(LRU)驱逐戦略を使用します。Indices.queries.cache.size設定は、このキャッシュのメモリサイズを制御します。

インデックスバッファー

このバッファーは新しいドキュメントをインデックスに保存し、バッファーがいっぱいになるとそれらをリフレッシュします。indexs.memory.index_buffer_sizeのような設定は、このバッファーに割り当てられるヒープの量を制御します。

スライドリクエストキャッシュ

このキャッシュは各スライドのローカル検索データを保存するために使用されます。インデックスの作成中にキャッシュを有効にすることもできますし、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 に設定すると、そのノードがデータノードでないと定義されます。