在不停业务的情况下重启ES集群中的节点
之前写了一篇文章如何安全重启ES集群的节点,这又一个前提,就是需要停止写入业务。但是,有些时候业务是不能停的,又需要重启某一个节点(例如补丁修复,服务器更换等),这就需要用到本篇文章提到的不停业务重启ES节点。
总体思路
将需要重启的节点从集群中删除,然后重新加入,也能起到重启的效果,但是不需要停业务
具体步骤
Step1 开启集群shard自动平衡
一般情况下,集群的自动平衡都是开启的,可以用以下指令查看
$ curl "localhost:9200/_cluster/settings?pretty"
{"persistent" : {"cluster" : {"routing" : {"allocation" : {"enable" : "all"}}}}
}
如果 “enable” : “all”,则表示自动平衡已经开启,如果没有开启,用以下方法开启自动平衡。
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{"persistent": {"cluster.routing.allocation.enable": "all" }
}
'
Step2 从ES集群中删除指定节点
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{"persistent" : {"cluster.routing.allocation.exclude._ip" : "10.0.0.1"}
}
'
这里可以通过ip,nodename等方法指定需要删除的节点
_name Match nodes by node name
_host_ip Match nodes by host IP address (IP associated with hostname)
_publish_ip Match nodes by publish IP address
_ip Match either _host_ip or _publish_ip
_host Match nodes by hostname
_id Match nodes by node id
_tier Match nodes by the node’s data tier role
Step3 等待集群自动重新平衡Shard
在同步期间,可以通过以下方法查看集群状态
$ curl 'localhost:9200/_cluster/health?pretty'
{"cluster_name" : "natanalyzer","status" : "green","timed_out" : false,"number_of_nodes" : 6,"number_of_data_nodes" : 6,"active_primary_shards" : 6694,"active_shards" : 6844,"relocating_shards" : 0,"initializing_shards" : 0,"unassigned_shards" : 0,"delayed_unassigned_shards" : 0,"number_of_pending_tasks" : 0,"number_of_in_flight_fetch" : 0,"task_max_waiting_in_queue_millis" : 0,"active_shards_percent_as_number" : 100.0
}
当relocating_shards=0的时候,再次确认需要删除的节点上已经没有shard,才执行下一步的操作
curl http://localhost:9200/_cat/shards?v|grep esnode5% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 561k 100 561k 0 0 1029k 0 --:--:-- --:--:-- --:--:-- 1028k
Step4,重新启动节点
Step5,节点重新加入集群
由于重新启动的节点已经被列入集群的exclude列表,需要对其进行清除,以触发shard重新平衡
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{"persistent" : {"cluster.routing.allocation.exclude._name" : null}
}
'
综上,就可以在带业务的情况下完成集群节点的重启。
在不停业务的情况下重启ES集群中的节点相关推荐
- 如何在零停机的情况下迁移 Kubernetes 集群
作者:顾静(子白)|阿里云高级研发工程师:谢瑶瑶(初扬)|阿里云技术专家 导语: 随着云原生理念在企业中的深入和践行,应用容器化的比例大幅提升.是否可以保证应用容器化迁移过程中的平稳切换,保证应用不停 ...
- windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...
windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...
- 0110-如何给Kerberos环境下的CDH集群添加Gateway节点
2019独角兽企业重金招聘Python工程师标准>>> Fayson的github: https://github.com/fayson/cdhproject 1.文档编写目的 Ga ...
- ES集群中出现UNASSIGNED分片时的解决思路
原文:https://www.modb.pro/db/182864 引入此问题的原因,是因为在单节点的ES部署策略中,如果在设置某个ES索引的replica不为零,你会发现. 存在Unassigned ...
- ES系列:停用集群中的节点
目录 下线方法 按IP下线 按id下线 按name下线 验证方法 下线方法 按IP下线 PUT _cluster/settings {"transient": {"clu ...
- es集群节点加入失败join validation on cluster state with a different cluster uuid...than local cluster uuid..
本来之前已经将es集群搭建完成了,但是不小心使用rm -rf /var/lib把文件删除了,我本来只想删除/var/lib下的一个文件夹的,结果删错了,整个集群没了,这,,,,还好集群上跑的都是一些测 ...
- Kubernetes 搭建 ES 集群(存储使用 cephfs)
推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...
- 基于docker-compose部署es集群和es-head
目录 1. 服务器基础设置 2. es集群的yml配置 3. 集群验证 3.1 访问es-head来查看集群 3.2 通过cerebro查看es集群 4. 参考资料 1. 服务器基础设置 修改/etc ...
- Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署
1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...
最新文章
- onAttach 显示过时的处理方法
- 用C语言写PHP扩展
- 苗旺:因果推断,观察性研究和 2021 年诺贝尔经济学奖
- 【Eclipse】推荐UML插件Green UML、AmaterasUML
- 【组合数学】生成函数 ( 移位性质 )
- Swoole的全双工、半双工和单工
- 联想电脑如何添加无线网络连接服务器,安装英特尔MYWIFI的操作步骤
- arrays.sort(._Arrays.hashCode(Object [])与Objects.hash(Object…)
- PowerDesigner生成的建表脚本中如何把对象的双引号去掉
- 总结一下用caffe跑图片数据的研究流程接上篇
- OD查找QQ sessionkey教程
- 论坛看到的很有感触的问答
- deepin系统引导_【转】deepin系统启动流程
- 快速检测npm registry镜像网址下载的速度
- 10月更新!又一波新功能上线,升级后的EasyOps®简直神了!
- 关于网上很不好找的幼儿识图APP
- “血洗”Twitter,“杀疯了”的马斯克究竟想干啥?
- starGan-v2论文复现-代码完整
- 多線程之WaitFor
- FPGA实现简易电梯控制系统设计