记一次zkfc故障问题定位

南墨3年前技术文章1500

问题现象:

    zkfc进程频繁告警

问题分析:

    1.查看zkfc日志显示如下,大量的与zk连接超时的信息,达到一定次数后,不再进行重试,最后zkfc状态报不健康

    1.png

    2.png

    

重启服务后,hadoop001节点检测到该台namenode是健康的,且zk选举认为hadoop1节点状态应切换为standy

    3.png

查看hadoop2 zkfc日志如下

九点零一分左右日志显示与zk连接超时,无法建立通信,导致zkfc服务不健康  

    1.png

重启后日志显示如下,检测到hadoop2节点可能是active节点,将hadoop1节点切换为standy

    1.png

综上由于hdfs的zkfc与zk通信超时,导致zkfc服务不健康,重启zkfc过程中导致namenode主从发生切换,故需要调整与zk通信时间,日志显示最大时间为10000ms

查看对应时刻zk日志,与leader同步超时,不停进行选举,一个是由于znode数据大小超限(默认4M),一个是因为同步快照日志超时(initLimit 默认值10s),且数据日志大小约为2G已上

   

   1.png

问题结论:由于zk的压力过大,导致zkfc和zk通信超时,导致此问题。

                  zk压力过大的原因如下:

                  1.zk连接数配置较低

                  2.由于其他组件在大量使用zk,导致链接负载较高

                  3.zk的gc参数设置的较小

问题处理:1.调整zk参数,增大客户端链接数参数值

                     maxCnxns

                     maxClientCnxns

                     SyncLimit

                  2.针对组件设置单独的znode,同时将大量使用zk的组件单独部署一个zk供其使用

                  3.调大zk的gc参数-Xmx由原来的2G调整到8G

相关文章

linux开启Firewall白名单限制ip访问

linux开启Firewall白名单限制ip访问

1、Firewalld是否启动成功systemctl start firewalld && systemctl enable firewalld 1 2、开启规则需求:客户由...

oracle跟踪会话级别的10046事件

1.开启10046跟踪事件alter session set events '10046 trace name context forever, level 12';2.执行要跟踪的sql语句sele...

MySQL运维实战之ProxySQL(9.6)SQL黑名单

利用mysql_query_rules表中的error_msg字段,可以实现SQL黑名单的功能。如果规则设置了error_msg,当SQL语句匹配这条规则时,proxysql会直接将error_msg...

大数据基础之HBase入门介绍

大数据基础之HBase入门介绍

一、HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HB...

log_queries_not_using_indexes参数设置

log_queries_not_using_indexes参数设置

【现象】通过查看慢日志发现有如下信息: 如上慢日志里出现较多 'index not used' warning(s) suppressed 信息;该信息主要是因为开启 log_queries_not_...

LINUX 安全运维-OpenSSH安全

LINUX 安全运维-OpenSSH安全

SSH 是建立在应用层基础上的安全协议,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。