Elasticsearch-modules

提供:Dev Guides
移動先:案内検索

Elasticsearch-モジュール

Elasticsearchは、その機能を担う多数のモジュールで構成されています。 これらのモジュールには、次の2種類の設定があります-

  • 静的設定-これらの設定は、Elasticsearchを開始する前にconfig(elasticsearch.yml)ファイルで設定する必要があります。 これらの設定による変更を反映するには、クラスター内のすべての関係ノードを更新する必要があります。
  • 動的設定-これらの設定はライブElasticsearchで設定できます。

この章の以降のセクションで、Elasticsearchのさまざまなモジュールについて説明します。

クラスタレベルのルーティングとシャード割り当て

クラスターレベルの設定により、異なるノードへのシャードの割り当てとクラスターの再分散のためのシャードの再割り当てが決定されます。 これらは、シャードの割り当てを制御する次の設定です。

クラスタレベルのシャード割り当て

設定

可能な値

説明

cluster.routing.allocation.enable

all

このデフォルト値により、すべての種類のシャードにシャードを割り当てることができます。

原色

これにより、プライマリシャードにのみシャードの割り当てが許可されます。

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)

これにより、同じ物理ノード内の同じシャードの複数のレプリカの割り当てが制限されます。

indexs.recovery.concurrent _streams

数値(デフォルトでは3)

これは、ピアシャードからのシャードリカバリ時に、ノードごとのオープンネットワークストリームの数を制御します。

indexs.recovery.concurrent _small_file_streams

数値(デフォルトでは2)

これにより、断片回復時のサイズが5 MB未満の小さなファイルのノードあたりのオープンストリーム数が制御されます。

cluster.routing.rebalance.enable

all

このデフォルト値により、すべての種類のシャードのバランスを取ることができます。

原色

これにより、プライマリシャードに対してのみシャードバランシングが可能になります。

レプリカ

これにより、レプリカシャードに対してのみシャードバランシングが可能になります。

none

これは、あらゆる種類のシャードバランシングを許可しません。

cluster.routing.allocation .allow_rebalance

常に

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

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)

これは、実行する必要がある操作の最小最適化値です。

ディスクベースのシャード割り当て

Setting Possible value Description
cluster.routing.allocation.disk.threshold_enabled Boolean value (by default true) This enables and disables disk allocation decider.
cluster.routing.allocation.disk.watermark.low String value(by default 85%) This denotes maximum usage of disk; after this point, no other shard can be allocated to that disk.
cluster.routing.allocation.disk.watermark.high String value (by default 90%) This denotes the maximum usage at the time of allocation; if this point is reached at the time of allocation, then Elasticsearch will allocate that shard to another disk.
cluster.info.update.interval String value (by default 30s) This is the interval between disk usages checkups.
cluster.routing.allocation.disk.include_relocations Boolean value (by default true) This decides whether to consider the shards currently being allocated, while calculating disk usage.

発見

このモジュールは、クラスターがその中のすべてのノードの状態を検出および維持するのに役立ちます。 クラスターの状態は、ノードが追加または削除されると変化します。 クラスター名の設定は、異なるクラスター間の論理的な違いを作成するために使用されます。 クラウドベンダーが提供するAPIを使用するのに役立つモジュールがいくつかあり、それらは以下のとおりです-

  • Azureディスカバリー
  • EC2ディスカバリー
  • Googleコンピューティングエンジンの検出 *禅の発見

ゲートウェイ

このモジュールは、クラスターの完全な再起動にわたってクラスターの状態と断片データを維持します。 以下は、このモジュールの静的設定です-

Setting Possible value Description
gateway.expected_nodes numeric value (by default 0) The number of nodes that are expected to be in the cluster for the recovery of local shards.
gateway.expected_master_nodes numeric value (by default 0) The number of master nodes that are expected to be in the cluster before start recovery.
gateway.expected_data_nodes numeric value (by default 0) The number of data nodes expected in the cluster before start recovery.
gateway.recover_after_time String value (by default 5m) This is the interval between disk usages checkups.
cluster.routing.allocation. disk.include_relocations Boolean value (by default true)

This specifies the time for which the recovery process will wait to start regardless of the number of nodes joined in the cluster.

gateway.recover_ after_nodes gateway.recover_after_master_nodes gateway.recover_after_data_nodes

HTTP

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

以下は、このモジュールを制御するための設定です(elasticsearch.ymlで設定されています)-

S.No Setting & Description
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要求を閉じる前にキューに入れるイベントの数が制限されます。

指標

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

サーキットブレーカー

これは、操作がOutOfMemroyErrorを引き起こさないようにするために使用されます。 この設定は、主にJVMヒープサイズを制限します。 たとえば、indexes.breaker.total.limit設定は、デフォルトでJVMヒープの70%に設定されます。

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

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

ノードクエリキャッシュ

このメモリは、クエリ結果をキャッシュするために使用されます。 このキャッシュは、最長時間未使用(LRU)エビクションポリシーを使用します。 Indices.queries.cahce.size設定は、このキャッシュのメモリサイズを制御します。

インデックスバッファ

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

シャードリクエストキャッシュ

このキャッシュは、すべてのシャードのローカル検索データを保存するために使用されます。 キャッシュは、インデックスの作成中に有効にするか、URLパラメーターを送信して無効にすることができます。

Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true

指数回復

回復プロセス中にリソースを制御します。 以下は設定です-

Setting Default value
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間隔

存続時間(TTL)間隔は、ドキュメントが削除されるまでの時間を定義します。 以下は、このプロセスを制御するための動的設定です-

Setting Default value
indices.ttl.interval 60s
indices.ttl.bulk_size 1000

Node

各ノードには、データノードであるかどうかのオプションがあります。 node.data 設定を変更することにより、このプロパティを変更できます。 値を false に設定すると、ノードがデータノードではないことを定義します。