ES集群管理
轉載自?ES集群管理
8 集群管理
ES通常以集群方式工作,這樣做不僅能夠提高 ES的搜索能力還可以處理大數據搜索的能力,同時也增加了系統的容錯能力及高可用,ES可以實現PB級數據的搜索。
下圖是ES集群結構的示意圖:
?
從上圖總結以下概念:
1、結點
ES集群由多個服務器組成,每個服務器即為一個Node結點(該服務只部署了一個ES進程)。
2、分片
當我們的文檔量很大時,由于內存和硬盤的限制,同時也為了提高ES的處理能力、容錯能力及高可用能力,我們將索引分成若干分片,每個分片可以放在不同的服務器,這樣就實現了多個服務器共同對外提供索引及搜索服務。
一個搜索請求過來,會分別從各各分片去查詢,最后將查詢到的數據合并返回給用戶。
3、副本
為了提高ES的高可用同時也為了提高搜索的吞吐量,我們將分片復制一份或多份存儲在其它的服務器,這樣即使當前的服務器掛掉了,擁有副本的服務器照常可以提供服務。
4、主結點
一個集群中會有一個或多個主結點,主結點的作用是集群管理,比如增加節點,移除節點等,主結點掛掉后ES會重新選一個主結點。
5、結點轉發
每個結點都知道其它結點的信息,我們可以對任意一個結點發起請求,接收請求的結點會轉發給其它結點查詢數據。
?
8.2 搭建集群
下邊的例子實現創建一個2結點的集群,并且索引的分片我們設置2片,每片一個副本
8.2.1 結點的三個角色
主結點: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表示它是一個客戶端
8.2.2創建結點 1
解壓elasticsearch-6.2.1.zip
結點1對外服務的http端口是:9200
集群管理端口是9300
配置elasticsearch.yml
結點名:xc_node_1
elasticsearch.yml內容如下
8.2.3創建結點 2
操作與節點1一樣
cluster.name: xuecheng node.name: xc_node_2 network.host: 0.0.0.0 http.port: 9201 transport.tcp.port: 9301 node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"] discovery.zen.minimum_master_nodes: 1 node.ingest: true bootstrap.memory_lock: false node.max_local_storage_nodes: 2path.data: D:\develop\elasticsearch\elasticsearch-6.2.1-2\data path.logs: D:\develop\elasticsearch\elasticsearch-6.2.1-2\logshttp.cors.enabled: true http.cors.allow-origin: /.*/8.2.4 創建索引庫
1)使用head連上其中一個結點
上圖表示兩個結點已經創建成功。
2)下邊創建索引庫,共2個分片,每個分片一個副本
創建成功,刷新head:
?
上圖可以看到共有4個分片,其中兩個分片是副本。
3)每個結點安裝IK分詞器
8.2.5 集群的健康
通過訪問 GET /_cluster/health 來查看Elasticsearch 的集群健康情況。
用三種顏色來展示健康狀態: green 、 yellow 或者 red 。
green:所有的主分片和副本分片都正常運行。
yellow:所有的主分片都正常運行,但有些副本分片運行不正常。
red:存在主分片運行不正常。
8.3 測試
1)創建映射并寫入文檔
連接 其中任意一臺結點,創建映射寫入文檔。
2)搜索
向其它一個結點發起搜索請求,查詢全部數據。
3)關閉一個結點
ES會重新選中一個主結點(前提在配置結點時允許它可以為主結點)
?
?
總結
- 上一篇: ES的索引管理
- 下一篇: 2.数据湖DeltaLake之DDL操作