程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Elasticsearch 8.2:多節點集群搭建與Python連接

編輯:Python

Elasticsearch搭建

當前有兩個服務器,ip分別為192.168.171.81192.168.171.25,我們需要搭建一個es集群。

首先下載elasticsearch-8.2.0-linux-x86_64.tar.gz,分別拷貝到這兩台服務器中,進行解壓。

需要注意的是,我們要在啟動Elasticsearch服務之前,就需要配置elasticsearch.yml

在第一台服務器修改config/elasticsearch.yml,內容如下:

network.host: 192.168.171.81
transport.host: 192.168.171.81
cluster.name: my_cluster # 可以不寫,默認為elasticsearch
node.name: node1 # 可以不寫,默認為當前服務器名
# node.roles: [ data, master ] # 可以不寫, 默認為cdfhilmrstw

角色列表如下:

然後修改文件config/jvm.options,內容如下:

-Xms4g
-Xmx4g

啟動第一台服務器的es:./bin/elasticsearch
出現下面,說明啟動成功:

默認密碼有點難記,我們修改密碼:
./bin/elasticsearch/bin/elasticsearch-reset-password -u elastic -i

驗證是否成功:
curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/",其中123456是我剛才設置的密碼,返回如下:

說明節點正常啟動了。

然後檢查一下集群節點:curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/_cat/nodes"

可以看到當前只有一個節點。

當前elasticsearch.yml文件自動進行了更新:

如果要一台新的服務器加入進來,需要生成一個token,有了這個token就可以讓一台新節點自動加入到集群,./bin/elasticsearch-create-enrollment-token -s node

接下來配置第二台服務器。 更第一台配置一樣,修改./config/elasticsearch.yml

network.host: 192.168.171.25
transport.host: 192.168.171.25
cluster.name: my_cluster
node.name: node2
node.roles: [ data, master ] # 可以不寫, 默認為cdfhilmrstw

修改config/jvm.options:

-Xms4g
-Xmx4g

然後在講這台節點加入es集群中:./bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjIuMCIsImFkciI6WyIxOTIuMTY4LjE3MS44MTo5MjAwIl0sImZnciI6Ijk5MGI4NDllNGVkNDk0NmEwYzAzZDdkZDk4YzQwMTg0MzllNGQ5M2E0NDExNjM5MTAxY2QwOTdkZGEzNmI5NTkiLCJrZXkiOiI0dVVjQUlFQktyU0dWdy1YSXlfVTpLYjBWaW1zZ1FkZTdxQ3dHamZJYUNnIn0=

然後在第一台節點終端顯示:

檢查node2的狀態:
curl --insecure -u elastic:123456 -XGET "https:/192.168.171.25:9200/"

可以看到node2也成功啟動了。

查看node2的配置文件elasticsearch.yml:

說明使用enrollment-token可以自動進行配置。下次就不需要了。

檢查集群節點:

可以看見集群裡有兩個節點。

Python連接

安裝 pip install elasticsearch

檢查版本:pip list | grep elasticsearch

elasticsearch 8.2.0

將es節點中的config/cert/http_ca.crt拷貝到本地。

from elasticsearch import Elasticsearch
es = Elasticsearch('https://elastic:[email protected]:9200',
ca_certs = './http_ca.crt',
verify_certs=True)
data = {

"name": "滅絕師太",
"age": "49",
"sex": "f",
"address": "峨眉山",
"sect": "峨眉派",
"skill": "倚天劍",
"power": "70",
"create_time": "2022-05-08 23:16:53",
"modify_time": "2022-05-08 23:16:59"
}
resp = es.index(index="example_index", id=1, body=data)
print(resp)

返回添加數據成功即可。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved