天天看點

ElasticSearch實戰系列十: ElasticSearch冷熱分離架構

本文主要介紹ElasticSearch冷熱分離架構以及實作。

冷熱分離是目前ES非常火的一個架構,它充分的利用的叢集機器的優劣來實作資源的排程配置設定。ES叢集的索引寫入及查詢速度主要依賴于磁盤的IO速度,冷熱資料分離的關鍵點為使用固态磁盤存儲資料。若全部使用固态,成本過高,且存放冷資料較為浪費,因而使用普通機械磁盤與固态磁盤混搭,可做到資源充分利用,性能大幅提升的目标。是以我們可以将實時資料(5天内)存儲到熱節點中,曆史資料(5天前)的存儲到冷節點中,并且可以利用ES自身的特性,根據時間将熱節點的資料遷移到冷節點中,這裡因為我們是按天建立索引庫,是以資料遷移會更加的友善。

架構圖:

ElasticSearch實戰系列十: ElasticSearch冷熱分離架構
使用冷熱分離的時候,我們需要将索引庫建立在熱節點中,等到一定的時間時間在将該索引庫遷移冷節點中。是以這裡我們需要更加熱節點的量來進行設定分片數。 比如,我們擁有6個熱節點,9個冷節點,索引庫的主分片的資料量500G左右,那麼該索引庫建立18個分片并且都在在熱節點中,此時該索引庫的分片的分布是,熱節點:18,冷節點0;等到該資料不是熱資料之後,将該索引庫的分片全部遷移到冷節點中,索引庫的分片的分布是, 熱節點:0,冷節點18。

單個索引庫熱冷節點分片分布示例:

時間

索引庫名稱

熱節點分片數量

冷節點分片數量

20190707

TEST_20190703

18

20190708

最終實作效果圖,這裡我用cerebro界面截圖來表示

cerebro示例圖:

寫入ES索引庫中,分片分布在熱節點中

ElasticSearch實戰系列十: ElasticSearch冷熱分離架構

過了一段時間之後進行了遷移,分片資料遷移到了冷節點:

ElasticSearch實戰系列十: ElasticSearch冷熱分離架構

更多ElasticSearch的相關介紹可以檢視我的這篇博文:https://www.cnblogs.com/xuwujing/p/12093933.html

ElasticSearch冷熱分離架構是一種思想,其實作原理是使用ElasticSearch的路由完成,在data節點設定對應的路由,然後在建立索引庫時指定分布到那些伺服器,過一段時間之後,根據業務要求在将這些索引庫的資料進行遷移到其他data節點中。

這裡需要改變的節點為data節點,其他的節點配置無需更改。這裡我就用以前寫的ElasticSearch實戰系列一: ElasticSearch叢集+Kibana安裝教程裡面的配置進行更改。

data節點的elasticsearch.yml原配置:

相比普通的data節點, 主要是增加了這兩個配置:

熱節點配置示例:

冷節點配置大體相同,就是後面的值進行更改

冷節點配置示例:

在建立索引庫的時候需要指定預設索引庫的分片歸屬,如果沒有指定,就會根據ElasticSearch預設進行均勻分布。這裡我們将索引庫預設建立到hot節點中,滿足業務條件之後在使用指令或代碼将該索引庫設定到冷節點中。

索引示例:

根據業務要求,我們可以對索引庫的資料進行遷移,使用dsl語句在kibana上執行或者使用java代碼實作都可以。

dsl語句:

java代碼實作:

完整代碼位址: https://github.com/xuwujing/java-study/tree/master/src/main/java/com/pancm/elasticsearch

其實這篇文章本應來說在2019年就完成了初稿,但是因為其他的事情一直耽擱,好在檢視草稿是發現了,于是便補了。因為時隔太久,細節上相比之前的文章有一定的差距。不過好在是寫出來了,以後的話寫文章的話還是盡早,不然後面就忘了。目前ElasticSearch實戰系列已經寫了10篇了,雖然中間的間隔有點久,後面我會慢慢的更新這個系列,盡量把自己所學所感悟的寫出來,如有寫的不好,希望能夠指出讨論。

ElasticSearch實戰系列:

ElasticSearch實戰系列一: ElasticSearch叢集+Kinaba安裝教程

ElasticSearch實戰系列二: ElasticSearch的DSL語句使用教程---圖文詳解

ElasticSearch實戰系列三: ElasticSearch的JAVA API使用教程

ElasticSearch實戰系列四: ElasticSearch理論知識介紹

ElasticSearch實戰系列五: ElasticSearch的聚合查詢基礎使用教程之度量(Metric)聚合

ElasticSearch實戰系列六: Logstash快速入門

ElasticSearch實戰系列七: Logstash實戰使用-圖文講解

ElasticSearch實戰系列八: Filebeat快速入門和使用---圖文詳解

ElasticSearch實戰系列九: ELK日志系統介紹和安裝

原創不易,如果感覺不錯,希望給個推薦!您的支援是我寫作的最大動力!

版權聲明:

作者:虛無境

部落格園出處:http://www.cnblogs.com/xuwujing

CSDN出處:http://blog.csdn.net/qazwsxpcm

掘金出處:https://juejin.im/user/5ae45d5bf265da0b8a6761e4    

個人部落格出處:http://www.panchengming.com

如果你對生活感覺到了絕望,請不要氣餒。因為這樣隻會讓你更加絕望!

所謂的希望往往都是在絕望中萌發的,是以,請不要放棄希望!

繼續閱讀