1 環境準備
1.1 伺服器資源
這裡我使用的是虛拟機環境
伺服器 | IP位址 |
---|---|
node1 | 192.168.51.4 |
node2 | 192.168.51.5 |
node3 | 192.168.51.6 |
1.2 安裝和配置es
詳情可參照博文: https://blog.csdn.net/qq_15769939/article/details/114249211
如果是虛拟機環境的話,可以直接部署一台,克隆兩台。
如果是克隆的話,需要将自定義的es data目錄的資料全部清空,按照我的教程來安裝的話,需要清空 /usr/local/elasticsearch-7.4.2/data
目錄下的所有檔案
2 配置叢集
2.1 node1
編輯配置檔案
[[email protected] config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml
配置檔案需修改的内容
# 配置叢集名稱,保證每個節點的名稱相同,確定處于一個叢集之内
cluster.name: auskat-es-cluster
# 節點名稱,每個節點都不同
node.name: es-node1
# http端口 (預設端口)
http.port: 9200
# 主節點,作用主要是用來管理整個叢集,負責建立或删除索引,管理其他非master節點(leader)
node.master: true
# 資料節點,用于對文檔資料的增删改查
node.data: true
# 叢集清單
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]
# 啟動的時候使用一個master節點
cluster.initial_master_nodes: ["es-node1]
指令去除注釋,檢視配置檔案資訊
[[email protected] config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]
2.2 node2
編輯配置檔案
[[email protected] config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml
配置檔案需修改的内容
# 配置叢集名稱,保證每個節點的名稱相同,確定處于一個叢集之内
cluster.name: auskat-es-cluster
# 節點名稱,每個節點都不同
node.name: es-node2
# http端口 (預設端口)
http.port: 9200
# 主節點,作用主要是用來管理整個叢集,負責建立或删除索引,管理其他非master節點(leader)
node.master: true
# 資料節點,用于對文檔資料的增删改查
node.data: true
# 叢集清單
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]
# 啟動的時候使用一個master節點
cluster.initial_master_nodes: ["es-node1]
指令去除注釋,檢視配置檔案資訊
[[email protected] config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]
2.3 node3
編輯配置檔案
[[email protected] config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml
配置檔案需修改的内容
# 配置叢集名稱,保證每個節點的名稱相同,確定處于一個叢集之内
cluster.name: auskat-es-cluster
# 節點名稱,每個節點都不同
node.name: es-node3
# http端口 (預設端口)
http.port: 9200
# 主節點,作用主要是用來管理整個叢集,負責建立或删除索引,管理其他非master節點(leader)
node.master: true
# 資料節點,用于對文檔資料的增删改查
node.data: true
# 叢集清單
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]
# 啟動的時候使用一個master節點
cluster.initial_master_nodes: ["es-node1]
指令去除注釋,檢視配置檔案資訊
[[email protected] config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]
2.4 啟動服務
分别啟動三點節點的elasticsearch服務
[[email protected] config]# cd /usr/local/elasticsearch-7.4.2/bin
[[email protected] bin]# ./elasticsearch -d
3 叢集腦裂問題
3.1 介紹
如果發生網絡中斷或者伺服器當機,那麼叢集就有可能被劃分為兩個部分,每個部分都有自己的master來管理,這個就是腦裂。
3.2 解決方案
master主節點要經過多個master節點共同選舉後才能成為新的主節點。
ES7 以下解決方案:
- 半數以上的節點統一選舉,節點方才可以成為新的master
- discovery.zen.minimun_master_nodes = (N/2) + 1
- N為叢集中的master節點的數量,也就是
設定的伺服器節點的總數node.master=true
ES 7.X:
在最新版的7.X版本中
,minimun_master_nodes
這個參數已經被移除,換做有es自身去管理,這樣就避免了腦裂的問題,選舉速度會比較快。
4 相關資訊
- 博文不易,辛苦各位猿友點個關注和贊,感謝