【es】通过分片感知将节点划分为不同的区域

1.es的分片感知,将节点划分为不同的区域

分片感知 
可以使用分片分配的感知,对副本分片分配的位置进行人为干预。分片分片的感知
允许把ES的节点划分为属于不同的区域,当分配一个副本分片时,不允许将它分配
到它的主分片所在的区域,这样可以避免同一区域宕机,导致集群不可用的风险。


(1)启动集群时,设置集群所在的区域属性 。
vim elasticsearch.yml  
node.attr.zone=zone1 

第二个节点:
node.attr.zone=zone2 

设置分配感知的区域。
curl -X PUT localhost:9200/_cluster/settings -u elastic:elastic  -H "Content-Type: application/json" -d '
{
"transient":{
"cluster.routing.allocation.awareness.attributes":"zone",
"cluster.routing.allocation.awareness.force.zone.values":"zone1,zone2"
}
}'

{
    "acknowledged":true,
    "persistent":{

    },
    "transient":{
        "cluster":{
            "routing":{
                "allocation":{
                    "awareness":{
                        "attributes":"zone",
                        "force":{
                            "zone":{
                                "values":"zone1,zone2"
                            }
                        }
                    }
                }
            }
        }
    }
}

curl -XGET localhost:9200/_cat/shards/iot_005?v -u elastic:elastic  -H "Content-Type: application/json" -d 

curl -X PUT localhost:9200/iot_005 -u elastic:elastic  -H "Content-Type: application/json" -d '
{
"settings":{
"number_of_shards":"3",
"number_of_replicas":"1"
}
}'

6.分片分配的过滤 
当想从集群中删除一个节点,在关闭该节点前,想把它拥有的分片全部迁移到其他节点上。
这时候可以使用分片分配的过滤来完成。分片分配的过滤允许配置分片只能
或不能分配到某些节点上,这些配置对整个集群有效。

vim elasticsearch.yml 
node.attr.state: abandon 

配置一个自定义属性state,内容为 abandon; 为了不让任何分片分配到该节点上,需要设置:
PUT _cluster/settings 
{
"transient":{"cluster.routing.allocation.exclude.state":"abandon"}
}

这样,携带属性:node.attr.state: abandon 的节点将不会分配任何分片。

常用的节点自带的属性有:
_name: 节点的名称。
_ip: 节点的IP; 
_host: 节点主机名  
_id: 节点的ID;

exclude 可以用于分配分片时过滤掉某些节点,include 和 require 可以用于配置分配 
分片时需要包含的节点。

PUT _cluster/settings 
{
"transient":{
"cluster.routing.allocation.exclude.state":"abandon",
"cluster.routing.allocation.include._name":"node-1,node-2",
"cluster.routing.allocation.require.state":"good,fine"
}
}

在集群中分配分片时,要过滤掉state属性为 abandon的节点,允许将分片分配到节点 
名为 node-1,或 node-2 的节点,而且节点的state 属性必须同时包含good 和 fine 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值