elasticsearch 冷熱數據的讀寫分離

 

步驟node

1、冷熱分離集羣配置centos

好比三個機器共六個node的es集羣。併發

每一個機器上各掛載一個ssd 和 一個sata。每一個機器須要啓動兩個es進程、每一個進程對應不一樣類型的磁盤。app

關鍵配置:elasticsearch

node.max_local_storage_nodes: 2   #容許每一個機器啓動兩個es進程高併發

path.data: /home/centos/es/elasticsearch-2.1.0/data/ssd   #須要顯示指定es對應的數據目錄大數據

啓動命令中須要指定node tagui

./elasticsearch -d -Des.path.conf=/home/centos/es/elasticsearch-2.1.0/config/ssd -d --node.tag=ssd
./elasticsearch -d -Des.path.conf=/home/centos/es/elasticsearch-2.1.0/config/sata -d --node.tag=sata

 

啓動之後節點以下:spa

 

 

2、建立索引模板code

http://192.168.126.132:9200/_template/hottest/    PUT

{
    "order": 1,
    "template": "hottest*",
    "settings": {
        "index": {
            "number_of_shards": "3",
            "number_of_replicas": "1",
            "refresh_interval": "1s",
            "routing.allocation.require.tag": "ssd"
        }
    },
    "mappings": {
        "_default_": {
            "properties": {
                "userid": {
                    "index": "not_analyzed",
                    "type": "string"
                },
                "username": {
                    "index": "not_analyzed",
                    "type": "string"
                },
                "sex": {
                    "index": "not_analyzed",
                    "type": "string"
                },
                "address": {
                    "index": "no",
                    "type": "string"
                }
            },
            "_all": {
                "enabled": false
            }
        }
    },
    "aliases": {
        "hottest": {}
    }
}
"routing.allocation.require.tag": "ssd"  指定默認寫入到 ssd 節點。

 

3、插入數據

http://192.168.126.132:9200/hottest_20170805/def/100001/  PUT

{
    "userid": "100001",
    "username": "zhangsan",
    "sex": "1",
    "address": "beijing"
}

在head 中看到數據所有保存在的 ssd 節點。

 

4、定時遷移老數據到 sata

http://192.168.126.132:9200/hottest_20170805/_settings/  PUT

{
    "index.routing.allocation.require.tag": "sata"
}

在head中看到數據移動到了 sata 節點

 

解決了兩個問題

1、使用有限的ssd節點資源來實現同時支持高併發讀寫和大數據量的存儲。

       經過配置使最新的數據保存在ssd磁盤節點上,較老的數據自動遷移到廉價sata節點。

2、用戶作一次大的查詢,大量的讀io和聚合操做致使集羣load升高,阻塞新數據的寫入,能作到必定程度的讀寫分離。

相關文章
相關標籤/搜索