真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ElasticSearch中怎么實現(xiàn)數(shù)據(jù)自動冷熱分離

這篇文章給大家介紹ElasticSearch中怎么實現(xiàn)數(shù)據(jù)自動冷熱分離,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

10年的崇仁網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整崇仁建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“崇仁網(wǎng)站設(shè)計”,“崇仁網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

1. 節(jié)點tag

依次啟動三個節(jié)點,同時加入box_type和resource_level標簽,box_type標記node1、node2為warm節(jié)點,node3為hot節(jié)點,resource_level標記機器資源的性能,分為高,中,低

bin/elasticsearch -d -p pid -E node.name=node1 -E node.max_local_storage_nodes=3 -E path.data=node1_data -E path.logs=node1_logs -E node.attr.box_type=warm -E node.attr.resource_level=high

bin/elasticsearch -d -p pid -E node.name=node2 -E node.max_local_storage_nodes=3 -E path.data=node2_data -E path.logs=node2_logs -E node.attr.box_type=warm -E node.attr.resource_level=mdeium

bin/elasticsearch -d -p pid -E node.name=node3 -E node.max_local_storage_nodes=3 -E path.data=node3_data -E path.logs=node3_logs -E node.attr.box_type=hot -E node.attr.resource_level=high


查看屬性:kibana中輸入以下命令
GET _cat/indices?v
得到以下結(jié)果,可以看到box_type和resource_level標簽在每個節(jié)點的值
node  host      ip        attr              value
node3 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184
node3 127.0.0.1 127.0.0.1 ml.max_open_jobs  20
node3 127.0.0.1 127.0.0.1 box_type          hot
node3 127.0.0.1 127.0.0.1 xpack.installed   true
node3 127.0.0.1 127.0.0.1 resource_level    high
node1 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184
node1 127.0.0.1 127.0.0.1 box_type          warm
node1 127.0.0.1 127.0.0.1 xpack.installed   true
node1 127.0.0.1 127.0.0.1 ml.max_open_jobs  20
node1 127.0.0.1 127.0.0.1 resource_level    high
node2 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184
node2 127.0.0.1 127.0.0.1 ml.max_open_jobs  20
node2 127.0.0.1 127.0.0.1 box_type          warm
node2 127.0.0.1 127.0.0.1 xpack.installed   true
node2 127.0.0.1 127.0.0.1 resource_level    mdeium

2. 建立索引

假設(shè)當前時間為2019年9月1日,作為最新的數(shù)據(jù)存儲在hot節(jié)點上,只需要在建立索引時指定allocation策略即可

PUT api_log_2019-09-01
{
  "settings": {
    "number_of_shards": 3, 
    "number_of_replicas": 0, 
    "index.routing.allocation.require.box_type": "hot">

假設(shè)建立索引時沒有配置該選項也不要緊,動態(tài)修改即可

PUT api_log_2019-09-01/_settings
{
  "index.routing.allocation.require.box_type": "hot"
}

3. 遷移索引

遷移歷史索引到warm節(jié)點的方式也是采用動態(tài)修改請求的方式

PUT api_log_2019-09-01/_settings
{
    "index.routing.allocation.require.box_type": "warm",
    "index.routing.allocation.include.resource_level": "mdeium"
}

我們將api_log_2019-09-01遷移到了box_type為warm,resource_level為mdeium的節(jié)點,即node2

通過查詢索引分片的分布情況
GET _cat/shards/api_log_2019-09-01?v

結(jié)果如下:
index          shard prirep state   docs store ip        node
api_log_2019-09-01 1     p      STARTED 4711 4.1mb 127.0.0.1 node2
api_log_2019-09-01 2     p      STARTED 4656   4mb 127.0.0.1 node2
api_log_2019-09-01 0     p      STARTED 4707 4.1mb 127.0.0.1 node2

Rollover API

大家應(yīng)該也注意到了,遷移索引的步驟是手動完成的,有沒有更智能的方式呢,答案是肯定的,rollover API可以很好地實現(xiàn)這個功能

1. rollover

首先為索引建立別名, 由于多個index可以對應(yīng)一個alias,為了讓es知道往哪個索引中寫,標記其中一個索引is_write_index為true,同時需要注意索引名以橫杠+數(shù)字結(jié)尾的形式命名,這是為了讓es自動生成索引

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "api_log_2019-09-01",
        "alias": "api_logs",
        "is_write_index": true
      }
    }
  ]
}

rollover API會根據(jù)設(shè)置的條件(conditions)來生成新的索引

POST api_logs/_rollover
{
  "conditions": {
    "max_age": "1d",
    "max_docs": 10000,
    "max_size": "5gb"
  }
}

conditions的詳細解釋:

max_age:索引是否創(chuàng)建大于1天
max_docs:索引文檔數(shù)是否超過10000
max_size:索引大小是否超過5GB
max_size正在進行中的合并會產(chǎn)生大量的臨時分片大小增長,而當合并結(jié)束后這些增長會消失掉,不穩(wěn)定,max_age每個時間內(nèi)不一定均衡,max_docs比較合適
即以上三個條件滿足其一就會自動rollover

2. 新索引配置

rollover也支持索引的settings設(shè)置

POST api_logs/_rollover
{
  "conditions": {
    "max_age": "1d",
    "max_docs": 10000,
    "max_size": "5gb"
  },
  "settings": {
    "index.number_of_shards": 2
  }
}

3. 自定義索引名稱

生成的索引名稱為api_log_2019-09-000002, 以長度為6,序號+1,左填充0的格式命名,但es支持自定義名稱,只需要在_rollover端點加入名稱即可

POST api_logs/_rollover/api_log_2019-09-02
{...}

關(guān)于ElasticSearch中怎么實現(xiàn)數(shù)據(jù)自動冷熱分離就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)頁名稱:ElasticSearch中怎么實現(xiàn)數(shù)據(jù)自動冷熱分離
本文來源:http://weahome.cn/article/gjoccg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部