记一次zkfc故障问题定位

南墨2年前技术文章1141

问题现象:

    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

相关文章

Jenkinsfile说明

Jenkinsfile说明

当我们在使用jenkins进行CI/CD的时候,简单的内容我们可以通过jenkins页面来实现配置。但是如果有复杂的需求还是需要通过jenkinsfile来实现jenkinsfile简单介绍Jenki...

yarn常用命令

1、yarn application 查看任务1.1 列出所有 Application: yarn application -list1.2 根据 Application 状态过滤:yarn appl...

MongoDB复制原理

一、Initial Sync大体来说,MongoDB副本集同步主要包含两个步骤: 1. Initial Sync,全量同步 2. Replication,即sync oplog 先通过init syn...

MySQL 中的状态变量

前言本篇文章介绍一些 MySQL 中常用的监控指标,常见的监控工具都是采集 MySQL 中的状态变量(status variables)理解这些状态变量,可以更好的帮助我们理解 MySQL 监控的含义...

数据湖Iceberg

数据湖Iceberg

1、概述         Iceberg 是一个面向海量数据分析场景的开放表格式(Table Format)。表格式(Table  Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框...

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(1)

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(1)

  1.0 云服务器的准备        使用云服务是为了可以得到一个 Linux 环境,比如说常用到的 Ubuntu 的配套程序。  &n...

发表评论    

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