记一次zkfc故障问题定位

南墨2年前技术文章1410

问题现象:

    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

相关文章

python脚本--检查域名证书到期时间

需要的依赖:pip install python-dateutil pip install pytzpython脚本内容:#!/usr/bin/env python3      import s...

单节点Kafka部署并开启Kerberos配置

安装Kerberosserver节点安装kerberos相关软件yum install -y krb5-server krb5-workstation krb5-libs修改配置文件krb5.conf...

apiserver指标分析

apiserver指标分析

概述kube-apiserver 是集群所有请求的入口,指标的分析可以反应集群的健康状态。Apiserver 的指标可以分为以下几大类:请求速率和延迟控制器队列的性能etcd 的性能进程状态:文件系统...

hive创建hbase映射表

hive创建hbase映射表

hbase创建表,导入数据/opt/app/hbase-2.1.0/bin/hbase shell查看已有表,创建新表,查看表结构listcreate 'student', 'info', 'scor...

Tomcat调优处理

1、隐藏版本号进入tomcat的lib目录找到catalina.jar文件unzip catalina.jar之后会多出两个文件夹 进入org/apache/catalina/util编辑配置文件Se...

Flink sql 集成hive metastore

Flink sql 集成hive metastore

1、前置条件**确认hive metastore版本(本次版本3.1.2) **hive metastore 部署成功hive依赖jar包分发到每个flink节点:/flink-1.13.6    ...

发表评论    

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