ES 一般以集羣方式工做、以提升搜索性能、容錯能力、高可用、實現PB級數據搜索。node
相關概念:bootstrap
(1)結點: ES集羣由多臺ES服務器組成、每一個ES 服務端就是個一個NODE結點服務器
(2)分片:因爲硬盤限制,爲提升ES處理數據量、將索引進行分片、分片後將其放在不一樣結點、實現多個服務端共同對外提供索引及搜索服務cors
(3)副本:將分片備份出來存儲在其餘服務端,實現高可用負載均衡
(4)主節點:用於管理集羣,如增刪節點、一個集羣中至少有一個主節點,可有多個,主節點掛了ES 會從新選一主節點elasticsearch
(5)節點轉發:每個節點都知道其餘節點的信息,咱們能夠向任何一個節點發請求,噹噹前節點分片剛好沒有數據時會自動轉發給其餘節點查詢數據tcp
(6)節點角色:節點分爲三個角色,使其承擔不一樣功能性能
①主節點(master):用於集羣管理、如新增節點、分片分配、索引新增、刪除等spa
②數據節點(data): 保存數據分片、服務索引、搜索code
③客戶端節點(client): 僅做爲請求客戶端存在,複製負載均衡、不保存數據、只作請求轉發
(7)節點角色的四種組合方式
master=true ,data=true : 主節點、數據節點
master=false,data=ture: 僅作數據節點
master=true,data=false: 僅作主節點
master=false,data=false: 客戶端節點
實現建立一個2結點的集羣,每一個節點都是master:true ,data:true ,讓其自動選舉真正的主節點。
結點1:
elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
#集羣名稱
cluster.name: xuecheng
# ------------------------------------ Node ------------------------------------
#節點名,一般一臺物理機就是一個節點
node.name: xc_node-1
node.master: true
node.data: true #便是主節點又是數據及誒單
node.max_local_storage_nodes: 2
node.ingest: true
# ----------------------------------- Paths ------------------------------------
path.data: D:/keil/elasticsearch-6.2.1/data
path.logs: D:/keil/elasticsearch-6.2.1/logs
# ----------------------------------- Memory -----------------------------------
#true鎖定ES使用的內存,避免內存與swap分區交換數據
bootstrap.memory_lock: false
# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
# --------------------------------- Discovery ----------------------------------
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300","0.0.0.0:9301"]
# ---------------------------------- Gateway -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: /.*/
節點2:
elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
#集羣名稱
cluster.name: xuecheng
# ------------------------------------ Node ------------------------------------
#節點名,一般一臺物理機就是一個節點
node.name: xc_node-2
node.master: true
node.data: true #便是主節點又是數據節點
node.max_local_storage_nodes: 2
node.ingest: true
# ----------------------------------- Paths ------------------------------------
path.data: D:/keil/elasticsearch-6.2.1/data
path.logs: D:/keil/elasticsearch-6.2.1/logs
# ----------------------------------- Memory -----------------------------------
#true鎖定ES使用的內存,避免內存與swap分區交換數據
bootstrap.memory_lock: false
# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301
# --------------------------------- Discovery ----------------------------------
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300","0.0.0.0:9301"]
# ---------------------------------- Gateway -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: /.*/