前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次zookeeper脑裂的故障排查

记一次zookeeper脑裂的故障排查

原创
作者头像
Bob hadoop
修改2021-02-04 10:05:56
2.3K0
修改2021-02-04 10:05:56
举报
文章被收录于专栏:日常杂记日常杂记

早上7点起床,看到手机钉钉告警显示生产集群zookeeper异常,于是起床备份name node 、zookeeper等重要节点日志,当时很多角色已经挂掉,resourcemanager死掉,zkfc死掉,zookeeper死掉,两个程序都与zk有关所以直接重启zookeeper而后故障恢复。下面查找导致此次故障的原因:

一、故障现象时序分析情况:

【0:19】zookeeper触发告警异常:无法判断leader或follower

The health test result for ZOOKEEPER_SERVER_QUORUM_MEMBERSHIP has become concerning: Quorum membership status of this ZooKeeper server could not be determined. We last detected its status 1 minute(s), 4 second(s) ago. The result at that time was: This ZooKeeper server is a member of a quorum as a Follower.

【0:20:53】zk触发最大延迟阈值

The health test result for ZOOKEEPER_SERVER_MAX_LATENCY has become unknown: Not enough data to test: Test of whether the ZooKeeper server's maximum request latency is too high.

【0:22】zk集群开始报告GC持续时间过长

The health test result for ZOOKEEPER_SERVER_GC_DURATION has become concerning: Average time spent in garbage collection was 22.3 second(s) (37.10%) per minute over the previous 5 minute(s). Warning threshold: 30.00%.

经查zk日志,发现故障时间点出现磁盘写入延迟

查看zookeeper数据存储目录,显示该该日志文件明显大于其他文件(正常50M左右,该文件大小为2.4G):

该日志为二进制文件,可以通过strings命令进行解析,通过解析该文件发现,有关于某张表的超长sql查询,单条sql内约含8W个11位数字,且由于多次查询,短时间共产生约1亿6000W个数据,约2.4G,这些数据导致zk内存快速打满,由于zk内存严重打满,导致full gc,最终拖垮zk集群。由于此时zk集群对外服务不可用,且resource manager依赖于此zookeeper,导致resource manager进入异常状态,无法对外提供正常服务

后续整改依然是规范生产加工的人

我们也调整了zk的gc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档