天天看點

Elasticsearch子產品功能之-索引分片配置設定(Index shard allocation)Elasticsearch子產品功能之-索引分片配置設定(Index shard allocation)1、分片配置設定2、節點分片總數 3、基于磁盤的分片配置設定

包含或者排除filters可以來控制基于節點的索引配置設定。filters可以在索引級别和叢集級别進行設定。如下使用叢集級别舉例:

設定有4個節點,每個的節點指定一個屬性tag(可以随意修改),并賦予特定值,比如節點1設定為node.tag:value1,節點二設定為node.tag:value2等等。建立索引時将index.routing.allocation.include.tag屬性設定為value1和value2後,我們将會建立一個隻部署在節點1和節點2的索引。指令如下:

<b>[html]</b> view plain copy

curl -XPUT localhost:9200/test/_settings -d '{

    "index.routing.allocation.include.tag" : "value1,value2"

}'

如果不想将索引添加到上述兩個節點上,可以使用index.routing.allocation.exclude.tag屬性。如下:

    "index.routing.allocation.exclude.tag" : "value1,value2"

index.routing.allocation.require.*用于指定幾個規則,滿足這些規則則會被配置設定到該節點上。

include,exclude和require的值也支援簡單的通配符,比如value1*,另外,_ip,_name,_id和_host這些屬于特定的屬性名稱,他們分别比對節點的IP位址,名稱,ID和主機名。以上的索引配置可以使用API進行實時的更新。

<code>index.routing.allocation.total_shards_per_node</code>設定可以控制es節點上每個索引最大能配置設定的分片個數。該配置可以使用API進行動态更新。

(該配置在es1.3.0後才有效)

Elasticsearch可以根據節點磁盤的使用情況來配置分片配置設定。該配置預設開啟你,可以下面指令進行禁用:

curl -XPUT localhost:9200/_cluster/settings -d '{

    "transient" : {

        "cluster.routing.allocation.disk.threshold_enabled" : false

    }

Elasticsearch使用兩個配置參數決定分片是否能存放到某個節點上。

cluster.routing.allocation.disk.watermark.low:控制磁盤使用的低水位。預設為85%,意味着如果節點磁盤使用超過85%,則ES不允許在配置設定新的分片。當配置具體的大小如100MB時,表示如果磁盤空間小于100MB不允許配置設定分片。

cluster.routing.allocation.disk.watermark.high:控制磁盤使用的高水位。預設為90%,意味着如果磁盤空間使用高于90%時,ES将嘗試配置設定分片到其他節點。

上述兩個配置可以使用API動态更新,ES每隔30s擷取一次磁盤的使用資訊,該值可以通過cluster.info.update.interval來設定。

上一篇: VI zabbix
下一篇: III 25 git

繼續閱讀