Oracle NoSQL DatabaseへのElasticsearchの登録
register-es
という名前のplan
コマンドを使用して、必要なクラスタをOracle NoSQL Databaseストアに登録する必要があります。このことはregister-es
計画によって実行し、このとき、Elasticsearchクラスタの名前、そのクラスタ内のいずれかのホストの名前、およびそのホストが接続リクエストをリスニングするHTTPポートを指定します。具体的には、register-es
計画のコマンドの形式は次のようになります。plan register-es
–clustername <name>
-host <host|ip>
-port <http port>
-secure <true|false>
[-wait]
[-force]
kv-> plan register-es
–clustername elasticsearch
–host 127.0.0.1
–port 9200
–secure false
-wait
Executed plan 22, waiting for completion...
Plan 22 ended successfully
注意:
register-es
計画が実行されるとき、以前のNoSQLストア・インスタンスと現在のElasticsearchクラスタの間の登録に基づいて作成された索引が、コマンドに指定されたElasticsearchクラスタにすでに含まれている場合、計画は失敗し、エラー・メッセージが表示されます。このような索引は失効した索引と呼ばれ、このような失効した索引が出現すると計画が失敗します。これは、現在Elasticsearchクラスタの状態で保持されている索引が、元の登録に基づいて以前に作成されたストアに関連付けられているためです。これらの既存の索引はElasticsearchクラスタの状態の一部ですが、新しいストア・インスタンスの状態の一部ではありません。新しいストア・インスタンスに、クラスタ内に新しい索引を作成できる新しい登録の作成を許可すると、ストアで保持される状態とElasticsearchで保持される状態の間で非一貫性および競合が発生し、エラー状態になることがあります。
このようなエラー状態を回避するために、新しいストア・インスタンスがElasticsearchクラスタへの新しい登録のリクエストを受信したとき、そのクラスタに、以前のストア・インスタンスによって作成された登録に関連付けられた索引が含まれている場合、そのリクエストは拒否されます。ただし、force
フラグが指定されている場合は除きます。register-es
コマンドにforce
フラグが指定されている場合、Elasticsearchがまずすべての失効した索引を削除するようにストアがリクエストします。その索引が正常に削除された後にのみ、新規ストア・インスタンスとElasticsearchクラスタの間に登録が作成されます。
登録処理中に、ストアの管理サービス(または単に管理)は、register-es
コマンド引数で指定されたElasticsearchノードの存在(およびネットワーク・パス)を検証し、そのノードから、Elasticsearchクラスタを構成するすべてのノードの接続情報の完全なリストを取得します。この情報は、管理者の状態に格納され、Oracle NoSQL Databaseストアのすべてのノードに配布されます。Elasticsearchクラスタのノード数が(ノードまたはネットワークの障害、クラスタの再構成などにより)大幅に変更された場合は、register-es
コマンドを繰り返してOracle NoSQL DatabaseのElasticsearchノード接続のリストを更新できます。
register-es
計画を正常に実行した後、次の方法で管理CLIからshow parameters
コマンドを実行し、Oracle NoSQL Databaseストアが、必要なElasticsearchクラスタに実際に登録されていることを確認できます。show parameters –service <storage node id>
show parameters
コマンドは、登録に成功した場合に、Elasticsearchクラスタの名前とともに、そのクラスタを構成しているノードのホスト名またはIPアドレス(あるいはその両方)が含まれる、指定したストレージ・ノードのプロパティのリストを表示します。show parameters
コマンドを実行すると、searchClustername
およびsearchClusterMembers
という名前のプロパティの値からその情報が得られます。次に例を示します。kv-> show parameters -service sn1
capacity=1
haHostname=localhost
haPortRange=5005,5007
hostname=localhost
memoryMB=0
mgmtClass=oracle.kv.impl.mgmt.NoOpAgent
mgmtPollPort=0
mgmtTrapPort=0
numCPUs=8
registryPort=5000
rnHeapMaxMB=0
rnHeapPercent=85
rootDirPath=./kvroot
searchClusterMembers=127.0.0.1:9200
searchClusterName=elasticsearch
serviceLogFileCount=20
serviceLogFileLimit=2000000
storageNodeId=1
systemPercent=10