- 什麼是 Hot & Warm Architecture
- 資料通常不會有 Update 操作;適用於 Time based 索引資料(生命週期管理),同時資料量比較大的
場景 - 引入 Warm 節點,低配置大容量的機器存放老資料,以降低部署成本
- 兩類資料節點, 不同的硬體配置
- Hot 節點(通常使用 SSD):索引有不斷有新文件寫入。通常使用 SSD
- Warm 節點(通常使用 HDD):索引不存在新資料的寫入;同時也不存在大量的資料查詢
- 用於資料的寫入
- Indexing 對 CPU 和 IO 都有很高的要求。所以需要使用高配置的機器
- 儲存的效能要好。建議使用 SSD
- 用於儲存只讀的索引,比較舊的資料
- 通常使用大容量的磁碟(通常是 Spinning Disks)
- 使用 Shard Filtering,步驟分為以下幾步
- 標記節點 (Tagging)
- 配置索引到 Hot Node
- 配置索引到 Warm 節點
- 需要通過 “node.attr” 來標記一個節點
- 節點的 attribute可以是任何的 key/value
- 可以通過 elasticsearch.yml 或者通過 –E 命 令指定
GET /_cat/nodeattrs?v
node host ip attr value
es7_01 172.28.0.2 172.28.0.2 ml.machine_memory 3973386240
es7_01 172.28.0.2 172.28.0.2 xpack.installed true
es7_01 172.28.0.2 172.28.0.2 ml.max_open_jobs 20
Index.routing.allocation
是一個索引級的 dynamic setting,可以通過 API 在後期進行設定- Curator / Index Life Cycle Management Tool
- ES 的節點可能分佈在不同的機架
- 當一個機架斷電,可能會同時丟失幾個節點
- 如果一個索引相同的主分片和副本分片,同時在這個機架上,就 有可能導致資料的丟失
- 通過 Rack Awareness 的機制,就可以儘可能避免將同一個索引 的主副分片同時分配在一個機架的節點上
- 一個機架斷電,資料可以恢復
- Shard Filtering
node.attr
- 標記節點index.routing.allocation
– 分配索引到節點
設定 |
分配索引到節點,節點的屬性規則 |
---|
Index.routing.allocation.include.{attr} |
至少包含一個值 |
Index.routing.allocation.exclude.{attr} |
不能包含任何一個值 |
Index.routing.allocation.require.{attr} |
所有值都需要包含 |
本作品採用《CC 協議》,轉載必須註明作者和本文連結