ElasticSearch クラスターは、クラスターを構築するための 動的クラスター接続方法に関する公式ドキュメント: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html 準備作業公式ウェブサイトのパラメータの説明:
docker pull elasticsearch:7.8.0 elasticsearchクラスターを配置するためのネットワークes_netを作成します。 docker ネットワーク作成 --subnet=172.18.0.0/24 es_net 公式サイトの dockerFile ファイルにある WORKDIR /usr/share/elasticsearch の情報によると、elasticsearch のインストール場所は /usr/share/elasticsearch ディレクトリにあることがわかります。後続の操作を容易にするために、elasticsearch によって生成されたデータをホストにマップするデータ ボリュームを作成し、es がクラッシュしてデータが回復できなくなるのを防ぎます。 データボリュームの作成 dockerボリューム作成es_data01 dockerボリューム作成es_data02 dockerボリューム作成es_data03 #パブリック設定ファイルとプラグインの保存場所 docker volume create es_conf docker ボリューム作成 es_plugins データ、設定、プラグインをそれぞれ保存するための3つのyml設定ファイルを作成します。 ElasticSearch クラスターを動的に構築する (推奨)つまり、ElasticSearch を起動し、ES に組み込まれた RestFul スタイルの操作を使用するだけで、クラスターの構築を完了できます。 es01を開始 docker run -it -d --restart always -p 9201:9200 -p 9301:9300 \ --name es01 --network=es_net --ip=172.18.0.101 \ -v es_data01:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "discovery.type=シングルノード" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0 es02を開始 docker run -it -d --restart always -p 9202:9200 -p 9302:9300 \ --name es02 --network=es_net --ip=172.18.0.102 \ -v es_data02:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "discovery.type=シングルノード" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0 es03を開始 docker run -it -d --restart always -p 9203:9200 -p 9303:9300 \ --name es03 --network=es_net --ip=172.18.0.103 \ -v es_data03:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "discovery.type=シングルノード" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0 PUTメソッドを通じて、Linux curlコマンドを使用してes02とes03を操作できます。 curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "持続的" : { 「クラスター」: { 「リモート」:{ "リーダー" : { 「種子」: [ 「127.0.0.1:9300」 ] } } } } } ' 永続的な更新 curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "持続的" : { "indices.recovery.max_bytes_per_sec" : "50mb" } } ' 一時的な更新 curl -X PUT "localhost:9200/_cluster/settings?flat_settings=true&pretty" -H 'コンテンツタイプ: application/json' -d' { 「一時的」: { "indices.recovery.max_bytes_per_sec" : "20mb" } } ' 一時的な構成コンテンツを削除する curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { 「一時的」: { "indices.recovery.max_bytes_per_sec" : null } } ' すべての一時設定を削除する curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { 「一時的」: { "indices.recovery.*" : null } } ' ElasticSearchは静的構成ファイルを通じてクラスターを起動します失敗の原因は、コンテナを起動するときのパラメータが少ないことにあるはずです。 es-node1ノードの設定ファイル情報 vim /var/lib/docker/volumes/es_conf/_data/es01.yml コメント行のesクラスタ通信のホストIPとポートアドレスを変更してください。 クラスター名: elasticsearch-cluster ノード名: es-node1 ネットワーク.bind_host: 0.0.0.0 network.publish_host: 192.168.117.231 #dockerホストのIPに変更 http.port: 9200 #これはコンテナ内にあるため、変更する必要はありません transport.tcp.port: 9300 #これはコンテナ内にあるため、変更する必要はありません http.cors.enabled: true http.cors.allow-origin: "*" ノードマスター: true ノードデータ: true 検出シードホスト: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] discovery.zen.最小マスターノード数: 2 インデックス.クエリ.bool.max_clause_count: 10240 #ホストの異なるポートを使用してビルドし、dockerコンテナを起動するときに-pを使用してマッピングポートを指定します 上記の構成ファイルから、マッピングする必要があるポートは 9300、9301、および 9302 であることがわかります。これらのポートはクラスター通信に使用され、3 つのノード バインディング ポートは -p 9300:9300、-p 9301:9300、および -p 9302:9300 です。 テーブルを作成します。 |
ノード | ホストポート1にバインド | ホストポート2にバインド |
---|---|---|
es-ノード1 | 9200 | 9300 |
es-ノード2 | 9201 | 9301 |
es-ノード3 | 9202 | 9301 |
効果 | 外部サービスを提供するポート | es1 と es3 クラスター間の通信用のポート |
es-node2ノードの設定ファイル情報
vim /var/lib/docker/volumes/es_conf/_data/es02.yml
es-node1との違いはノード名が変更されていることです
クラスター名: elasticsearch-cluster ノード名: es-node2 ネットワーク.bind_host: 0.0.0.0 network.publish_host: 192.168.117.231 #dockerホストのIPに変更 http.port: 9200 #これはコンテナ内にあるため、変更する必要はありません transport.tcp.port: 9300 #これはコンテナ内にあるため、変更する必要はありません http.cors.enabled: true http.cors.allow-origin: "*" ノードマスター: true ノードデータ: true 検出シードホスト: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] discovery.zen.最小マスターノード数: 2 インデックス.クエリ.bool.max_clause_count: 10240 #ホストの異なるポートを使用してビルドし、dockerコンテナを起動するときに-pを使用してマッピングポートを指定します
es-node3ノードの設定ファイル情報
vim /var/lib/docker/volumes/es_conf/_data/es02.yml
es-node1との違いはノード名が変更されていることです
クラスター名: elasticsearch-cluster ノード名: es-node3 ネットワーク.bind_host: 0.0.0.0 network.publish_host: 192.168.117.231 #dockerホストのIPに変更 http.port: 9200 #これはコンテナ内にあるため、変更する必要はありません transport.tcp.port: 9300 #これはコンテナ内にあるため、変更する必要はありません http.cors.enabled: true http.cors.allow-origin: "*" ノードマスター: true ノードデータ: true 検出シードホスト: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] discovery.zen.最小マスターノード数: 2 インデックス.クエリ.bool.max_clause_count: 10240 #ホストの異なるポートを使用してビルドし、dockerコンテナを起動するときに-pを使用してマッピングポートを指定します
es-node1 起動コマンド、docker プロセス エイリアス es01
使用されるネットワークは上記で作成したネットワークカードes_netであり、指定されたノードの内部ネットワークIP 172.18.0.100はes_netと同じネットワークセグメント内にある必要があります。
docker run -it -d --restart always -p 9200:9200 -p 9300:9300 \ --name es01 --network=es_net --ip=172.18.0.100 \ -v es_data01:/usr/share/elasticsearch/data \ : ディレクトリ /var/lib/docker/volumes/es_conf/_data/es01.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0
ES_JAVA_OPTSは、esの起動時にメモリ領域を過度に占有しないように、esが使用するメモリを指定します。
--restart always データボリュームのマッピングは省略されます。注意すべき点は、設定ファイル es01.yml が、内部 es の起動時に使用される設定ファイルにマッピングされることです。
docker run -it -d --restart always -p 9201:9200 -p 9301:9300 \ --name es02 --network=es_net --ip=172.18.0.101 \ -v es_data02:/usr/share/elasticsearch/data \ -v /var/lib/docker/volumes/es_conf/_data/es02.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0
docker run -it -d --restart always -p 9202:9200 -p 9302:9300 \ --name es03 --network=es_net --ip=172.18.0.102 \ -v es_data03:/usr/share/elasticsearch/data \ -v /var/lib/docker/volumes/es_conf/_data/es03.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" エラスティックサーチ:7.8.0
これで、Docker を使用した ElasticSearch:7.8.0 クラスターのインストールに関するこの記事は終了です。Docker を使用した ElasticSearch クラスターのインストールの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。
>>: MySQLデュアルマスター(マスターマスター)アーキテクチャ構成ソリューション
Keepalive は Vue プロジェクトでのキャッシュによく使用され、基本的な要件を満たすのに非...
1. ソフトウェアのダウンロードMySQL のダウンロードとインストール:公式サイトのダウンロード...
1. this.$router.push() 1. ビュー <テンプレート> <d...
要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパー...
概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...
目次Linux - MyCat を使用して MySQL マスター スレーブの読み取り書き込み分離を実...
1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...
参考: Docker 公式 Redis ドキュメント1. 特別なバージョン要件がある場合は、redi...
具体的なupgradeスクリプトは次のとおりです。インデックスを動的に削除する アップグレードが存在...
来学期にMySQLを勉強します。事前に自宅で練習していませんでした。インストールに時間がかかるとは思...
各 Web ページには、URL () で識別されるアドレスがあります。通常、Web サイト内でリンク...
序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...
フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...
静的と動的の分離動的リクエストと静的リクエストはミドルウェアを通じて分離され、不要なリクエストの消費...
序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...