Elasticsearchは、Restful APIを提供する分散検索サービスです。最下層はLuceneに基づいており、[データセキュリティ](https://cloud.tencent.com/solution/data_protection?from=10680)を確保するために複数のシャードを使用し、自動再シャーディングを提供します。githubなどの大規模サイトも検索サービスとしてElasticsearchを使用します。 。ここでは意味のないことを繰り返しません。以下は、CentOS7でのElasticsearchクラスターの展開プロセスを記録しています。
Elasticsearchクラスターを3つのサーバーにデプロイする前に:
qd-vpc-op-es01 101.119.92.247
qd-vpc-op-es02 101.119.92.249
qd-vpc-op-es03 101.119.92.254
次に、別のes04マシンをクラスターに追加します。操作は次のとおりです。
qd-vpc-op-es04 101.119.92.161)jdkとelasticsearchをインストールします
jdk-8u5-linux-x64.rpmダウンロードアドレス:
https://pan.baidu.com/s/1bpxtX5X(パスワードの抽出:df6s)
elasticsearch-5.5.0.rpmダウンロードアドレス:
https://pan.baidu.com/s/1mibwWeG(抽出パスワード:vtm2)
[ root@qd-vpc-op-es04 ~]# cd tools/[root@qd-vpc-op-es04 tools]# ls
elasticsearch-5.5.0.rpm jdk-8u5-linux-x64.rpm
[ root@qd-vpc-op-es04 tools]# rpm -ivh elasticsearch-5.5.0.rpm
[ root@qd-vpc-op-es04 tools]# rpm -ivh jdk-8u5-linux-x64.rpm
[ root@qd-vpc-op-es04 tools]# java -version
java version "1.8.0_05"Java(TM) SE Runtime Environment(build 1.8.0_05-b13)
Java HotSpot(TM)64-Bit Server VM(build 25.5-b02, mixed mode)2)elasticsearchを構成します
[ root@qd-vpc-op-es04 ~]# cd /etc/elasticsearch/[root@qd-vpc-op-es04 elasticsearch]# ls
elasticsearch.yml elasticsearch.yml.bak jvm.options log4j2.properties nohup.out scripts
[ root@qd-vpc-op-es04 elasticsearch]# cat elasticsearch.yml|grep -v "#"//クラスタ内の各ノードの構成内容は基本的に同じです
cluster.name: image_search //クラスター名
node.name: image_search_node_4 //クラスタ内のこのノードのノード名。ここで定義するだけです。
path.data:/data/es/data //サービスディレクトリパス
path.logs:/data/es/logs //サービスログパス
discovery.zen.ping.unicast.hosts:["101.119.92.247","101.119.92.249","101.119.92.254","10.111.233.16"]//各ノードのIPアドレスは次のとおりです
network.host:0.0.0.0//サービスにバインドされたネットワークアドレス
デフォルトのelasticsearchサービスポートは9200です[root@qd-vpc-op-es04 elasticsearch]# cat elasticsearch.yml|grep 9200
# http.port:9200[root@qd-vpc-op-es04 elasticsearch]# systemctl start elasticsearch.service
[ root@qd-vpc-op-es04 elasticsearch]# systemctl restart elasticsearch.service
[ root@qd-vpc-op-es04 elasticsearch]# systemctl status elasticsearch.service
[ root@qd-vpc-op-es04 elasticsearch]# ps -ef|grep elasticsearch
[ root@qd-vpc-op-es04 elasticsearch]# lsof -i:9200
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10998 elasticsearch 320u IPv4 39255 0t0 TCP *:wap-wsp(LISTEN)
Elasticsearchのヘルスステータスを確認する
[ root@qd-vpc-op-es04 elasticsearch]# curl 'localhost:9200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open video_filter Bx7He6ZtTEWuRBqXYC6gRw 5145801304.1gb 2gb
green open recommend_history_image svYo_Do4SM6wUiv6taUWug 512865902024.9gb 12.4gb
green open recommend_history_gif rhN3MDN2TbuYILqEDksQSg 5126573102.4gb 1.2gb
green open post_images TMsMsMEoR5Sdb7UEQJsR5Q 51487249320407.3gb 203.9gb
green open review_images_v2 qzqnknpgTniU4rCsvXzs0w 5150375955061.6gb 30.9gb
green open review_images rWC4WlfMS8aGe-GOkTauZg 51518108770439.3gb 219.7gb
green open sensitive_images KxSrjvXdSz-y8YcqwBMsZA 51133930128.1mb 64mb
green open post_images_v2 FDphBV4-QuKVoD4_G3vRtA 5149340491055.8gb 27.8gb
上記のコマンド結果からわかるように、このノードは名前イメージに正常に追加されています。_検索はelasticsearchクラスター内にあります。緑色は、ノードステータスが正常であり、データがすでに同期されていることを示します。
3 )コード内のelasticsearchの構成を更新します
新しいelasticsearchノードの構成をコードに追加するように開発部門の同僚に通知します。オンライン更新後、新しいノードのelasticsearchログをチェックして、elasticsearchログに情報が書き込まれているかどうかを確認します。
[ root@qd-vpc-op-es04 ~]# cd /data/es/logs/[root@qd-vpc-op-es04 ~]# chown -R elasticsearch.elasticsearch /data/es
[ root@qd-vpc-op-es04 logs]# ls
image_search_deprecation.log image_search_index_indexing_slowlog.log image_search_index_search_slowlog.log image_search.log
----------------------------------------------------------------------------------------------------------------
注意:
Elasticsearchクラスターにノードを追加する場合は、次のようにします。
1 )新しいノードにjdkとelasticsearchサービスをインストールし、elasticsearchを構成します.ymlファイル、elasticsearchサービスを開始します
2 )クラスター内の他のノードでelasticsearchを構成します.ymlファイル、elasticsearchサービスを開始する必要はありません
3 )新しいノードでcurlを実行します'localhost:9200/_cat/indices?v'ヘルスステータスとデータ同期を表示するコマンド
4 )新しいelasticsearchノードの構成をコードに追加します。オンライン更新後、新しいノードのelasticsearchログに情報が書き込まれているかどうかを確認します。
----------------------------------------------------------------------------------------------------------------
最後に、ちなみに、他の3つのノードのelasticsearchを投稿してください.ymlファイル構成:
[ root@qd-vpc-op-es01 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#"
cluster.name: image_search
node.name: image_search_node_1
path.data:/data/es/data
path.logs:/data/es/logs
discovery.zen.ping.unicast.hosts:["10.111.233.16","101.119.92.247","101.119.92.249","101.119.92.254"]
network.host:0.0.0.0[root@qd-vpc-op-es02 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#"
cluster.name: image_search
node.name: image_search_node_2
path.data:/data/es/data
path.logs:/data/es/logs
discovery.zen.ping.unicast.hosts:["10.111.233.16","101.119.92.247","101.119.92.249","101.119.92.254"]
network.host:0.0.0.0[root@qd-vpc-op-es03 ~]# cat /etc/elasticsearch/elasticsearch.yml|grep -v "#"
cluster.name: image_search
node.name: image_search_node_3
path.data:/data/es/data
path.logs:/data/es/logs
discovery.zen.ping.unicast.hosts:["101.119.92.247","101.119.92.249","101.119.92.254","10.111.233.16"]
network.host:0.0.0.0----------------------------------------------------------------------------------------------------------------
ノードをシャットダウンするか、クラスターから削除する場合は、データの同期を停止するように事前にノードに通知する必要があります(移行中に使用されます)。
# curl -XPUT 'localhost:9200/_cluster/settings'-d '{"transient":{"cluster.routing.allocation.enable": "none”}}’
Recommended Posts