记一次zkfc故障问题定位

南墨2年前技术文章1287

问题现象:

    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

相关文章

pg_probackup

一、pg_probackup概述pg_probackup 是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁盘空间的使...

ReadConcern与WriteConcern

一、ReadConcern1、ReadConcern vs ReadPreferenceReadPreference 主要控制从副本集哪个节点来读取数据,该参数可以实现读写分离、就近读取的功能prim...

Prometheus结合VictoriaMetrics:更高效、稳定的多集群监控方案

在Prometheus的架构中,其核心组件包括Prometheus Server、Exporters、Alertmanager等,它采用基于拉的模型收集指标数据,并存储在本地TSDB中,支持通过Pro...

Kubernetes 调度策略

1、资源调度创建一个新的 Pod 资源对象时,该 Pod 应该运行在哪个工作节点,由 Scheduler 调度器进行调度。Scheduler 是一个守护进程,其内部有很多调度算法。Pod 调度流程:当...

nginx服务企业应用

1、软件的分类1.1 常用来提供静态服务的软件Apache :这是中小型Web服务的主流,Web服务器中的老大哥,Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大。Ngi...

使用impala操作kudu

使用impala操作kudu

登录impala-shell,创建impala_kudu数据库。1、创建表CREATE TABLE student ( id int not null, name STRING null ,...

发表评论    

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