记一次zkfc故障问题定位

南墨1年前技术文章552

问题现象:

    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

相关文章

grafana7 监控https证书过期时间

grafana7 监控https证书过期时间

使用 Grafana 7 中new table visualization功能,使用Prometheus监视证书的到期日期,并使用Grafana进行展示。所有证书一目了然:证书到期之前的剩余时间,HT...

MySQL性能优化(二)优化排序操作

MySQL性能优化(二)优化排序操作

排序是数据库的基本功能。一个例子SELECT * FROM audit_log  WHERE user_id = xxx AND&nb...

容器引擎Podman常用命令浅析

容器引擎Podman常用命令浅析

Podman简介Podman 是一个开源的无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。容器既可以以root身份运行,也可以在无root模式下运行。Podman 提供与 Do...

oracle压测

一、oracle自带压测存储过程: link:https://blog.csdn.net/xiaofan23z/article/details/79789981、首先确定通过运行以下查询,确保为数据文...

EMR部署Kudu

EMR部署Kudu

前置准备部署kudu的节点yum安装cyrus相关包,如果有不通外网的可以在通外网的节点开启yum缓存包配置,将yum包缓存在本地后scp到不通外网的节点在进行yum安装。yum install cy...

等待事件latch: cache buffers chains 的分析与优化

等待事件latch: cache buffers chains 的分析与优化

等待事件latch: cache buffers chains 的分析与优化要理解latch: cache buffers chains并解决这个问题,就需要深入的了解Buffer Cach...

发表评论    

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