当前位置: 首页 > news >正文

es重启临时关闭自动分片

ElasticSearch 集群的高可用和自平衡方案会在节点挂掉(重启)后自动在别的结点上复制该结点的分片,这将导致了大量的IO和网络开销。
如果离开的节点重新加入集群,elasticsearch为了对数据分片(shard)进行再平衡,会为重新加入的节点再次分配数据分片(Shard);当一台es因为压力过大而挂掉以后,其他的es服务会备份本应那台es保存的数据,造成更大压力,于是整个集群会发生雪崩。
生产环境的 ElasticSearch 服务如果负载过重,单台服务器不稳定;则集群稳定性就会因为自动平衡机制,再遭重创。生产环境下建议关闭自动平衡。

一、数据分片与自平衡配置

1.1、关闭自动分片,即使新建index也无法分配数据分片

生产中设置这个即可,集群节点重启后,未分配的分片会比较多,然后开启后会自动重新分配。(可以先设置一部分节点,然后开启,再设置一部分,再开启)

curl -XPUT http://192.168.1.213:9200/_cluster/settings -d '{
  "transient" : {
    "cluster.routing.allocation.enable" : "none"
  }
}'

1.2、关闭自动平衡,只在增减ES节点时不自动平衡数据分片

curl -XPUT http://192.168.1.213:9200/_cluster/settings?pretty -d '{
  "transient" : {
    "cluster.routing.rebalance.enable" : "none"
  }
}'

1.3、设置完以后查看设置是否添加成功

curl http://192.168.1.213:9200/_cluster/settings?pretty

1.4、打开自动分片,自动平衡(如果关闭的话) 

curl -XPUT http://192.168.1.213:9200/_cluster/settings -d '{
  "transient" : {
    "cluster.routing.allocation.enable" : "all",
    "cluster.routing.rebalance.enable" : "all"
  }
}'

二、延迟副本的重新分配

2.1、数据恢复延迟动态配置

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

未分配节点重新分配过程,延迟到5分钟之后。

2.2、数据恢复操作延迟静态配置

下面是修改 elasticsearch.yml 文件

gateway.recover_after_nodes: 8
这将防止Elasticsearch立即开始数据恢复,直到集群中至少有八个(数据节点或主节点)节点存在。
gateway.expected_nodes: 10 
gateway.recover_after_time: 5m
集群开始数据恢复等到5分钟后或者10个节点加入,以先到者为准。

三、脑裂问题

对某一个实例进行重启后,很有可能会导致该实例无法找到master而将自己推举为master的情况出现,为防止这种情况,需要调整 elasticsearch.yml 中的内容:

discovery.zen.minimum_master_nodes: 2

这个配置就是告诉Elasticsearch除非有足够可用的master候选节点,否则就不选举master,只有有足够可用的master候选节点才进行选举。
该设置应该始终被配置为有主节点资格的点数/2 + 1,例如:

  1. 有10个符合规则的节点数,则配置为6.
  2. 有3个则配置为2.

四、关于设置的有效性

  1. persistent 重启后设置也会存在
  2. transient 整个集群重启后会消失的设置
PUT /_cluster/settings
{
    "persistent" : {
        "discovery.zen.minimum_master_nodes" : 2
    }
}

五、批量重启集群

ip是集群ip list地址

#停es服务
ssh ip -C 'ps -ef|grep  org.elasticsearch.bootstrap.Elasticsearch|grep -v grep|awk '{print \$2}'|xargs kill -9'
 
#启动es服务
ssh ip -C 'su - es -c "cd /home/es/software/elasticsearch/bin;sh elasticsearch -d"'

参考:

ElasticSearch 服务节点重启需要的相关操作 | IT工程师的生活足迹

 ES集群一个正确的重启流程(附串行重启es脚本)_可乐大数据的博客-CSDN博客_es重启

相关文章:

  • Git仓库4(分支操作冲突,标签管理)
  • camera特效app(安卓)
  • JAVA代码 企业人力资源管理系统(详细带截图) 毕业设计
  • Spring 事务
  • 海滩的海鸥
  • 医疗系统业务流程
  • 云计算-虚拟化
  • Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
  • 医疗项目 01(项目简介)
  • 用npm 用jest测试
  • 版税激励错配下,创作者如何可持续地盈利?
  • 蓝桥杯实战应用【算法代码篇】-一题三解:计算二进制中1的个数(附Java和C++代码)
  • 一览「数字身份」市场结构:我们将在元宇宙中成为谁?
  • Web3 时代 市场营销的变迁
  • 常用类和内部类总结
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【React系列】如何构建React应用程序
  • js中的正则表达式入门
  • Laravel Telescope:优雅的应用调试工具
  • leetcode98. Validate Binary Search Tree
  • mysql 5.6 原生Online DDL解析
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • opencv python Meanshift 和 Camshift
  • Python - 闭包Closure
  • session共享问题解决方案
  • vue--为什么data属性必须是一个函数
  • Zsh 开发指南(第十四篇 文件读写)
  • 电商搜索引擎的架构设计和性能优化
  • 携程小程序初体验
  • 一起参Ember.js讨论、问答社区。
  • 用Python写一份独特的元宵节祝福
  • 与 ConTeXt MkIV 官方文档的接驳
  • MyCAT水平分库
  • (4)(4.6) Triducer
  • (4)STL算法之比较
  • (C++17) std算法之执行策略 execution
  • (pytorch进阶之路)扩散概率模型
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)Honghu Cloud云架构一定时调度平台
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)iOS字体
  • .CSS-hover 的解释
  • .net Application的目录
  • .NET Core WebAPI中封装Swagger配置
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET构架之我见
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • @media screen 针对不同移动设备