總結之全文檢索ElasticSearch(二)——集羣管理

ES通常以集羣方式工作,這樣做不僅能夠提高 ES的搜索能力還可以處理大數據搜索的能力,同時也增加了系統的 容錯能力及高可用,ES可以實現PB級數據的搜索。 下圖是ES集羣結構的示意圖:
在這裏插入圖片描述
從上圖總結以下概念:

1、結點

ES集羣由多個服務器組成,每個服務器即爲一個Node結點(該服務只部署了一個ES進程)。

2、分片

當我們的文檔量很大時,由於內存和硬盤的限制,同時也爲了提高ES的處理能力、容錯能力及高可用能力,我們將 索引分成若干分片,每個分片可以放在不同的服務器,這樣就實現了多個服務器共同對外提供索引及搜索服務。
一個搜索請求過來,會分別從各各分片去查詢,後將查詢到的數據合併返回給用戶。

3、副本

爲了提高ES的高可用同時也爲了提高搜索的吞吐量,我們將分片複製一份或多份存儲在其它的服務器,這樣即使當 前的服務器掛掉了,擁有副本的服務器照常可以提供服務。

4、主結點

一個集羣中會有一個或多個主結點,主結點的作用是集羣管理,比如增加節點,移除節點等,主結點掛掉後ES會重 新選一個主結點。

5、結點轉發

每個結點都知道其它結點的信息,我們可以對任意一個結點發起請求,接收請求的結點會轉發給其它結點查詢數據。

搭建集羣

下邊的例子實現創建一個2結點的集羣,並且索引的分片我們設置2片,每片一個副本。

結點的三個角色

主結點:master節點主要用於集羣的管理及索引 比如新增結點、分片分配、索引的新增和刪除等。 數據結點: data 節點上保存了數據分片,它負責索引和搜索操作。 客戶端結點:client 節點僅作爲請求客戶端存在,client的 作用也作爲負載均衡器,client 節點不存數據,只是將請求均衡轉發到其它結點。
通過下邊兩項參數來配置結點的功能:
node.master: #是否允許爲主結點 node.data: #允許存儲數據作爲數據結點 node.ingest: #是否允許成爲協調節點,
四種組合方式:
master=true,data=true:即是主結點又是數據結點
master=false,data=true:僅是數據結點 master=true,data=false:僅是主結點,不存儲數據 master=false,data=false:即不是主結點也不是數據結點,此時可設置ingest爲true表示它是一個客戶端。

創建結點1

解壓elasticsearch-6.2.1.zip 到 F:\devenv\elasticsearch\es-cloud-1\elasticsearch-6.2.1 結點1對外服務的http端口是:9200
集羣管理端口是9300 配置elasticsearch.yml 結點名:my-elasticesearch
elasticsearch.yml內容如下

cluster.name: my-elasticesearch  
node.name: node_1    
network.host: 127.0.0.1    
http.port: 9200    
transport.tcp.port: 9300    
node.master: true    
node.data: true 

啓動結點1

創建結點2

cluster.name: my-elasticesearch  
node.name: node_2    
network.host: 127.0.0.1    
http.port: 9201    
transport.tcp.port: 9301    
node.master: true    
node.data: true 

啓動結點2

在這裏插入圖片描述
注意:每個結點安裝IK分詞器
這樣就完了了集羣,對其他一個結點ip請求,相對對集羣請求。

集羣的健康

通過訪問 GET /_cluster/health 來查看Elasticsearch 的集羣健康情況。 用三種顏色來展示健康狀態: green 、 yellow 或者 red 。 green:所有的主分片和副本分片都正常運行。 yellow:所有的主分片都正常運行,但有些副本分片運行不正常。 red:存在主分片運行不正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章