天天看點

ES elasticsearch叢集配置1 環境準備2 配置叢集3 叢集腦裂問題4 相關資訊

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 相關資訊

  • 博文不易,辛苦各位猿友點個關注和贊,感謝

繼續閱讀