在生產環境下,如果不修改elasticsearch節點的角色資訊,在高資料量,高併發的場景下集群容易出現腦裂等問題。
預設情況下,elasticsearch 集群中每個節點都有成為主節點的資格,也都儲存資料,還可以提供查詢服務。這些功能是由兩個屬性控制的。
1. node.master
2. node.data
預設情況下這兩個屬性的值都是true。
node.master:
這個屬性表示節點是否具有成為主節點的資格,注意:此屬性的值為true,並不意味著這個節點就是主節點。因為真正的主節點,是由多個具有主節點資格的節點進行選舉產生的。所以,這個屬性只是代表這個節點是不是具有主節點擊舉資格。
node.data:
這個屬性表示節點是否儲存資料。
五種組合
組合1.
node.master: true
node.data: true
node.ingest: true
這種組合表示這個節點既有成為主節點的資格,又可以儲存資料,還可以作為預處理節點,這個時候如果某個節點被選舉成為了真正的主節點,那麼他還要儲存資料,這樣對於這個節點的壓力就比較大了。
elasticsearch 預設是:每個節點都是這樣的配置,在測試環境下這樣做沒問題。實際工作中建議不要這樣設定,這樣相當於 主節點 和 資料節點 的角色混合到一塊了。
組合2.
node.master: false
node.data: true
node.ingest: false
這種組合表示這個節點沒有成為主節點的資格,也就不參與選舉,只會儲存資料。這個節點我們稱為 data(資料)節點。在集群中需要單獨設定幾個這樣的節點負責儲存資料。後期提供儲存和查詢服務
組合3.
node.master: true
node.data: false
node.ingest: false
這種組合表示這個節點不會儲存資料,有成為主節點的資格,可以參與選舉,有可能成為真正的主節點。這個節點我們稱為master節點
組合4.
node.master: false
node.data: false
node.ingest: true
這種組合表示這個節點即不會成為主節點,也不會儲存資料,這個節點的意義是作為乙個 client(客戶端)節點,主要是針對海量請求的時候可以進行負載均衡。在新版 elasticsearch5.x 之後該節點稱之為:coordinate 節點,其中還增加了乙個叫:ingest 節點,用於預處理資料(索引和搜尋階段都可以用到),當然,作為一般應用是不需要這個預處理節點做什麼額外的預處理過程,那麼這個節點和我們稱之為 client 節點之間可以看做是等同的,我們在**中配置訪問節點就都可以配置這些 ingest 節點即可。
組合5.
node.master: false
node.data: false
node.ingest: false
這種配置為純查詢模式,節點只可以接受查詢,對於查詢資料量比較大的集群,配置這種節點可以有效的保護資料節點,防止datanode記憶體溢位。這種模式比模式四更節省資源,為純查詢模式!
預設情況下,每個節點都有成為主節點的資格,也會儲存資料,還會處理客戶端的請求。在乙個生產集群中我們可以對這些節點的職責進行劃分。
建議集群中設定 3臺 以上的節點作為 master 節點【node.master: true node.data: false node.ingest:false】,這些節點只負責成為主節點,維護整個集群的狀態。
再根據資料量設定一批 data節點【node.master: false node.data: true node.ingest:false】,這些節點只負責儲存資料,後期提供建立索引和查詢索引的服務,這樣的話如果使用者請求比較頻繁,這些節點的壓力也會比較大
所以在集群中建議再設定一批 ingest 節點也稱之為 client 節點
【node.master: false
node.data: false
node.ingest:true】或者
【node.master: false
node.data: false
node.ingest:false
】這些節點只負責處理使用者請求,實現請求**,負載均衡等功能。
master節點:普通伺服器即可(cpu 記憶體 消耗一般)
data 節點:主要消耗磁碟,記憶體
client | ingest 節點:普通伺服器即可(如果要進行分組聚合操作的話,建議這個節點記憶體也分配多一點)
redis集群刪除master節點
1.首先把該master節點下的雜湊槽轉移到其他節點下執行下面命令 redis trib.rb reshard 192.168.139.30 7000 接受雜湊槽的redis節點,不是待刪除的redis節點 隨後會提示接受雜湊槽的node id 即192.168.139.30 7000的node i...
Hadoop集群Master節點部署方案
更改 etc hosts,新增所有集群機器ip到主機名對映 拷貝hadoop包hadoop.tar.gz到 usr local md5sum校驗hadoop.tar.gz包 md5sum hadoop.tar.gz 解壓hadoop.tar.gz包 tar xzf hadoop.tar.gz 更改h...
ES 集群配置
需要確認其它es節點中的data目錄,一定要清空,不能有資料。修改elasticsearch.yml這個配置檔案如下 配置集群名稱,保證每個節點的名稱相同,如此就能都處於乙個集群之內了 cluster.name es cluster 每乙個節點的名稱,必須不一樣 node.name es node1...