1. 程式人生 > >Elasticsearch 冷熱分離

Elasticsearch 冷熱分離

       為了不浪費伺服器資源(每臺機器上均配置有SSD和大儲存,且記憶體配置較高),提高ES讀寫效能,我們嘗試進行了ES叢集冷熱分離的配置。

測試環境

       兩臺機器,均配置有SSD和SATA盤。每臺機器上執行兩個ES例項,其中一個例項配置data目錄為SSD

  1. 解壓安裝(兩臺機器)
    mkdir -p /data/mdware
    cd /data/mdware
    tar -zxf elasticsearch-2.2.1.tar.gz
    ln -s /data/mdware/elasticsearch-2.2.1 /data/mdware/es
    cd /data/mdware/es/conf
    mkdir instance1
    mkdir instance2
    cp elasticsearch.yml instance1
    mv elasticsearch.yml instance2
    cp logging.yml instance1
    mv logging.yml instance2
  2. 配置(四個配置檔案,注意區別)
action.auto_create_index : -protocol*,+*
cluster.name: knowops
#分別取名為kone1.2.3.4
node.name: "kone1"
# kone2配置為 /ssd/kone2data(/ssd   SSD掛載目錄)
path.data: /data/mdware/elasticsearch-2.2.1/kone1data
path.logs: /data/mdware/elasticsearch-2.2.1/kone1log
bootstrap.mlockall: true
# IP
network.host: 192.168.211.129
node.max_local_storage_nodes: 2
http.cors.enabled : true
http.cors.allow-origin : "*"
index.number_of_replicas: 0
discovery.zen.ping.unicast.hosts: ["192.168.211.129:9300","192.168.211.130:9300"]
  1. 啟動
    cd /data/mdware/es
    ulimit -n 655360(開啟檔案數最低要求為65536)
    export ES_HEAP_SIZE=16g(我的配置為1/8記憶體)
    bin/elasticsearch -Des.insecure.allow.root=true -Des.path.conf=config/instance1 -d --node.tag=hot(SSD配置為hot節點)
    export ES_HEAP_SIZE=16g(1/8記憶體)
    bin/elasticsearch -Des.insecure.allow.root=true -Des.path.conf=config/instance2 -d --node.tag=stale

  2. 模板配置
    vi database.template.json

{
        "template":"ni-database-*",
        "settings":{
                "index.number_of_replicas":"0",
                 "index.routing.allocation.require.tag" : "hot"   //配置寫入hot節點
        },
        "mappings":{
                "_default_":{
                        "_all":{
                                "enabled":false,
                                "norms":{
                                        "enabled":false
                                }

                        },
                        "dynamic_templates":[
                                {
                                        "template1":{
                                                "mapping":{
                                                        "doc_values":true,
                                                        "ignore_above":1024,
                                                        "index":"not_analyzed",
                                                        "type":"{dynamic_type}"
                                                },
                                                "match":"*"
                                        }

                                }
                        ],
                        "properties":{
                            "timeStart":{
                                    "type":"date"
                            }
                        }
                }
        }
}
    curl -XPUT 192.168.211.130:9200/_template/ni-database-template -d @database.template.json
  1. 定時任務
    我們的索引是按天生成的,所以每天00:30定時任務移動資料到stale節點
#/bin/bash
time=`date -d last-day "+%Y.%m.%d"`
curl -XPUT http://localhost:9200/*-${time}/_settings?pretty -d'
{
  "index.routing.allocation.require.tag": "stale"
}'
  1. 叢集效果(kopf外掛)

轉:https://www.jianshu.com/p/f13a6dbb84ed