elasticsearch宝典(2)-常用配置动态变更

软件环境

elasticsearch 2.4.1

elasticsearch 6.2.4

变更设置
动态更新 API 有两种工作模式:

  • 临时(Transient)

这些变更在集群重启之前一直会生效。一旦整个集群重启,这些配置就被清除。

  • 永久(Persistent)

这些变更会永久存在直到被显式修改。即使全集群重启它们也会存活下来并覆盖掉静态配置文件里的选项。

PUT /_cluster/settings
{
    "persistent" : {
        "discovery.zen.minimum_master_nodes" : 2 
    },
    "transient" : {
        "indices.store.throttle.max_bytes_per_sec" : "50mb" 
    }
}

查看集群配置

支持:ES 6.2.4 ES 2.4.1 

get _cluster/settings 
{

}

修改索引副本数

支持:ES 6.2.4 ES 2.4.1 

put /索引名称/_settings
{
  "number_of_replicas": 4
}

限制集群节点分片数

支持:ES 6.2.4 ES 2.4.1 

put _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.total_shards_per_node": "100"
  }
}

备注:限制每个节点100个分片,当节点分片超过100后,移动分片超出限制提示出错

限制索引节点分片数

支持:ES 6.2.4 ES 2.4.1 

put 索引名称/_settings
{
  "transient": {
    "index.routing.allocation.total_shards_per_node": "3"
  }
}

备注:在索引创建后,只能在索引关闭状态下才能使用。更新成功后,如果修改索引副本数量,超过每个节点的分片数量,会出现不能分配。

迁移节点分片

支持:ES 6.2.4 ES 2.4.1 

put _cluster/reroute
{
  "commands": [
    {
      "move": {
        "index": "索引名称",
        "shard": 3,
        "from_node": "app04",
        "to_node": "app01"
      }
    }
  ]
}

排除节点

支持:ES 6.2.4 ES 2.4.1 

put _cluster/settings
{
  "transient" : {
    "cluster.routing.allocation.exclude._name" : "app02,app03"
  }
}

延迟副本的重新分配

支持:ES 6.2.4 ES 2.4.1 

PUT /_all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "10m"
  }
}

备注:解决这种瞬时服务器中断的问题,Elasticsearch 可以推迟分片的分配集群会等待几分钟来查看节点是否会重新加入,如果这个节点在此期间重新加入,重新加入的节点会保持其现有的分片数据,不会触发新的分片分配。
延迟分配不会阻止副本被提拔为主分片。集群还是会进行必要的提拔来让集群回到 yellow状态。缺失副本的重建是唯一被延迟的过程。

禁止分片分配

支持:ES 6.2.4 ES 2.4.1

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "none"
  }
}

all - (默认值)允许为所有类型的分片分配分片。

primaries - 仅允许分配主分片的分片。

new_primaries - 仅允许为新索引的主分片分配分片。

none - 任何索引都不允许任何类型的分片。

备注:
在禁用分片分配的情况下,排除节点,排除的节点上的分片是不会主动分配新分片移动的,
启用分片分配的情况下,才会主动分配新分片移动。
排除的节点不能手工往上移入分片,但是可手工移出分片。

禁止分片平衡
支持:ES 6.2.4 ES 2.4.1

put _cluster/settings
{
  "transient": {
    "cluster.routing.rebalance.enable": "none"
  }
}

all - (默认值)允许各种分片的分片平衡。
primaries - 仅允许主分片的分片平衡。
replicas - 仅允许对副本分片进行分片平衡。
none - 任何索引都不允许任何类型的分片平衡。

备注:禁止平衡后,出现分片不均,禁止平衡后,集群增加新的机器,分片不会主动平衡到新的机器上

配置索引冷热节点

ES 6.2.4 写法

put hiskeywordext/_settings
{
  "index.routing.allocation.require.box_type": ""
}

ES 2.4.1 写法

put hiskeywordext/_settings
{
  "index.routing.allocation.require.tag": ""
}

修改磁盘使用量限制

支持:ES 6.2.4

Put _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "80%",
    "cluster.routing.allocation.disk.watermark.high": "90%",
    "cluster.info.update.interval": "1m"
  }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值