• -------------------------------------------------------------
  • ====================================

ES运维–快速重启

elasticsearch dewbay 6年前 (2019-04-12) 3070次浏览 已收录 0个评论 扫描二维码

启动初始化时间长
修改 es 配置,重启集群成本巨大。ES集群已有 25T 数据,27 个节点,24 个数据节点(热盘 12 和 hot 节点,慢盘 12 个 stale 节点,3 个 mater 节点),数据节点的启动,加入集群后需要初始化全部索引,这个过程过程很慢。全部重启一次可能要一天,非常耗时。重启后经常遇到少量索引一直处于 unassigned 状态,导致集群一直是 red 状态。

目标
有时调整配置,希望能快速重启生效(能用 api 改的优先不停服务修改),减少 es 服务停顿时间。
master 节点和 stale 节点修改配置可以随时重启。
hot 数据节点最好在晚上或者周末重启,重启前最好先停止数据写入。

发现启动前如果事先关闭 shard 自动均衡,初始化索引速度会快得多。因此我们完善了下操作流程

调整后的重启流程
A. 重启 master 节点
注意事项:先把非当选的两个 master 重启(可以同时操作);重启完成后,能在集群里看到两个点都加入后,才能重启最后一个 master。master 不需要恢复索引,没有初始化,速度很快。

B. 重启 stale 节点

注意事项:避开索引删除、索引迁移等定时任务执行时间段(如果时间有重叠,可先禁用调度任务)

  1. 先关闭集群的 shard 分配(停止后新建索引将不会分配,index 不能迁移,不会执行自动均衡)

curl -XPUT http://ip:port/_cluster/settings -d ‘{“transient”:{“cluster.routing.allocation.enable”:”none”}}’

  1. 备份配置文件,修改好所有配置(做好检查,不要漏)
  2. 第一步执行完后,要查看 es 集群状态 curl ‘ip:port/_cat/health?v’。等到 relo、init、unassign 这 3 项都变成 0 后,再操作下一步。(这个时间一定要等,磨刀不误砍柴功,这个操作完成后对重启初始化索引速度会大幅提高)
  3. 重启节点。索引都初始化好了,再操作下一个节点。注意:不同物理机上的节点可以同时重启(最好不要同时启动太多节点,慢盘上的分片多初始化时间会稍长些),但不要在同一个物理机上同时重启多个节点。
    节点启动后首先会找 master 加入集群,之后初始化本地索引分片数据,这个过程是 CPU 和 IO 密集型操作。
    由于禁用了路由均衡分配,这个过程会比以前快得多。
  4. 全部完成后要恢复分片分配

curl -XPUT http://ip:port/_cluster/settings -d ‘{“persistent”:{“cluster.routing.allocation.enable”:”all”}}’
curl -XPUT http://ip:port/_cluster/settings -d ‘{“transient”:{“cluster.routing.allocation.enable”:”all”}}’
C. 重启 hot 节点
注意事项:避开索引创建、索引迁移等定时任务执行时间段(如果时间有重叠,可先禁用调度任务),在低峰操作(晚上或者周末)

  1. 先停止所有数据写入
  2. 后续操作和重启 stale 节点相同

D. 重启整个集群

顺序是先启 master 组(所有的 master 重启完成后要停止集群的 shard 自动均衡),再启 hot 组节点,最后启 stale 组节点

作者:Scub
来源:CSDN
原文:https://blog.csdn.net/u013673976/article/details/73556548
版权声明:本文为博主原创文章,转载请附上博文链接!


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ES运维–快速重启
喜欢 (1)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址