原文网址:ElasticSearch重启失败的解决方案_IT利刃出鞘的博客-CSDN博客

简介

本文介绍ES重启失败的解决方法。

问题描述

对ES集群进行了重启,集群重启几分钟后,部分实例开始逐渐下线,导致集群不可恢复。

集群规模

普通模式,3EsMaster,40EsNode,每实例均为31GB内存。

数据量:

1000多index, 38365个shard,其中主分片28695个,数据量100T。

日志分析

ES集群重启,恢复几分钟后,出现大量ping Master节点超时的错误,然后ES节点实例开始逐渐下线,导致集群恢复不了。

原因分析

集群分片数过多,并发恢复过程中,同时业务没有停止,导致EsMaster处理压力过大,number_of_pending_tasks(挂起的任务)逐渐增加,到达4W多,大量的任务阻塞。

此时_cluster/health命令已无法正常返回结果,导致大量ES实例处于恢复中状态,连续3次检查超时后,Manager会重启实例。这会导致挂起的任务越来越多,集群不可恢复。

处理步骤

  1. 重启的过程中,发现大量ES实例执行_cluster/health命令超时错误,但其实数据仍在缓慢恢复中。于是注释_cluser/health检查脚本,防止实例多次失败后,被manager重启。
  2. 再次重启后,发现大量分片处于未分配状态,执行_cluster/allocation/explain查看分片未被分配的原因,发现shard恢复时的cluster.routing.allocation.node_current_incoming达到了最大值。鉴于集群主分片数太多,于是调大恢复参数至:cluster.routing.allocation.node_initial_primaries_recoveries 200 cluster.routing.allocation.node_concurrent_recoveries 100 cluster.routing.allocation.cluster_concurrent_rebalance 100
    同时因为有业务数据写入,将分片分配设置为none:cluster.routing.allocation.enable none
  3. 再次重启后,集群开始恢复,查看_cat/thread_pool/,generic 线程池(分片恢复会用到该线程池)已经到达128,查看界面CPU使用率也在70-80,查看日志,分片正在恢复中。
  4. 10分钟左右,集群恢复到80%左右,开始恢复缓慢,初始化分片(initializing_shards)有2000多个,这些分片初始化的过程耗时接近2小时。
    1. 原因分析:在多次重启的过程中,业务侧并没有停止,由于有些primary新写入了数据,在数据的recovery过程中,需要从主副本之间拷贝数据,或者利用translog恢复数据。直到primary-replica完全in-sync后,才会完成初始化。 这个过程取决于shard的大小和新写入量的大小(初始化的分片普遍数据量较大)。

      1. 最后有一个分片无法分配,查看原因,该分片无法从translog in-sync(同步)。查看该索引settings,sync_interval设置为360s,设置同步刷新时间过多,会有一定几率发生数据丢失(客户有原数据备份)。
      2. 集群恢复后,还原集群参数配置和健康检查脚本。

问题根因

  1. 集群的分片数过多,按一个实例管理600shard为标准,该集群分片数过度超标的。合 理设置索引分片,定期对历史索引进行处理(关闭或删除不需要的索引)。
  2. 目前的健康检查机制需要优化,使用_cluster/health去判断各实例的健康是否合理,包 括检查周期等。在EsMaster压力过大的情况下,_cluster/health可能会造成误判。

ElasticSearch重启失败的解决方案相关推荐

  1. 记一次ElasticSearch重启之后shard未分配问题的解决

    记一次ElasticSearch重启之后shard未分配问题的解决 环境 ElasticSearch6.3.2,三节点集群 Ubuntu16.04 一个名为user的索引,索引配置为:3 primar ...

  2. 电脑计算机打不开显示远程过程,Win10打不开图片提示“远程过程调用失败”的解决方案...

    Windows10系统打不开图片提示"远程过程调用失败"怎么办?这是近来不少用户在使用Win10过程中经常会碰到的问题,这个问题会给我们带来不少困扰,该怎么办呢?下面,系统城小编整 ...

  3. CDH修改静态资源池配置,NodeManager重启失败问题

    问题描述: 修改静态资源池配置的时候,重启整个CM之后,突然发现一个YARN中的NodeManager重启失败,问题NodeManager服务不能重启也不能停止.通过链接(http://hadoopi ...

  4. 鸿蒙os2.0环境搭建gradle-5.4.1-all.zip下载失败问题解决方案

    鸿蒙os2.0环境搭建gradle-5.4.1-all.zip下载失败问题解决方案 解决 gradle-5.4.1-zip因拉取超时而失败的这个问题 鸿蒙官网的解决方案 1.按照上面链接找到 环境安装 ...

  5. 计算机每次开机配置更新失败,win10系统开机总是提示配置windows更新失败的解决方案...

    win10系统开机总是提示配置windows更新失败的解决方案? 我们在操作win10系统电脑的时候,常常会遇到win10系统开机总是提示配置windows更新失败的问题.那么出现win10系统开机总 ...

  6. 华为服务器DHCP进不去系统,dhcp服务器重启失败

    dhcp服务器重启失败 内容精选 换一换 启动目的端时失败,错误码:SMS.3103,提示迁移失败原因"对目的服务器重新建立引导失败".启动目的端后,系统会重新安装目的端Grub, ...

  7. nginx重启失败nginx -s reload

    nginx重启失败@TOC 欢迎 项目场景: 提示: nginx 重启失败出现:"/data/wwwlogs/nginx.pid" failed (2: No such file ...

  8. PostgreSQL切换用户,提示对等认证失败的解决方案

    PostgreSQL切换用户,提示对等认证失败的解决方案 参考文章: (1)PostgreSQL切换用户,提示对等认证失败的解决方案 (2)https://www.cnblogs.com/zonglr ...

  9. Mongodb异常关闭重启失败解决

    Mongodb异常关闭重启失败解决 参考文章: (1)Mongodb异常关闭重启失败解决 (2)https://www.cnblogs.com/net-saiya/p/4617925.html 备忘一 ...

最新文章

  1. Windows 10 Visual Studio 2017 安装配置 Apache Thrift (C++)
  2. elastic-job详解(一):数据分片
  3. Spring Cloud依赖
  4. 从上海到旧金山,2021 LiveVideoStackCon回归上海
  5. idea+maven下jrebel的安装破解
  6. 3.1_ 4连续分配管理方式
  7. itext html 转换 pdf文件,利用itext实现html转pdf文档
  8. mysqlbinlog日志一天产生太多脚本
  9. 端到端半监督目标检测框架Instant-Teaching:
  10. 【elasticsearch】 flink es sink Connection refused
  11. ORACLE批量更新四种方法比较
  12. fscokopen 中执行超时 使用stream_set_timeout设置超时
  13. Python 数据结构 树
  14. hg255d php,hg255d强刷华硕rt-n13u官方固件果断中继成功
  15. Java生成csv文件设置文本格式
  16. android 阅读器字体,Android字体设置及Roboto字体使用方法
  17. 3d稀疏卷积——spconv源码剖析(一)
  18. RHCE 7.0 考试命令整理
  19. CSS 2D转换和源点的影响原理(translate、scale、skew、rotate)
  20. mybatis日志配置

热门文章

  1. 华硕笔记本 触摸板开关控制
  2. KesionCMS V4.x部份最常用的标签清单
  3. Java-斐波拉契数列
  4. atom编辑器运行html,Atom编辑器配置
  5. [RBP] RaspberryPi系列之附二:重设密码
  6. openssh离线升级8.8
  7. 李子的猜数游戏!(β版)
  8. 如何提高学生对计算机英语的兴趣论文,关于计算机专业英语教学方法的论文
  9. 【原创】【婚前必读】《女人这东西》(《男》姐妹篇)BY:渡边淳一
  10. 使用Aggregated APIServer扩展你的kubernetes API