大数据平台中元数据库—MySQL的异常故障解决

本文的主要目标是解决大数据平台中元数据库MySQL的异常故障。通过分析应用响应缓慢的问题,找到了集群组件HIVE和元数据库MySQL的原因。通过日志分析、工具检测和专家指导等一系列方法, 最终确定问题的根源是大数据集群中租户的不规范使用所导致,并逐步解决了这个问题。本文将详细描述故障的定位和解决思路,希望通过案例分析能为遇到类似问题的同行提供参考。

本文来自twt社区专业委员会的课题研究

一、故障背景

营销人员在应用端进行目标客户群建设的时候,发现有很大延迟。经过反馈、初步的查实定位,发现是后端调用大数据集群服务的时候,出现了没有返回的情况。这个情况导致后续的住户画像、上传集团、报数以及多个需要提醒目标客户的应用延迟。甚至引起了部分专业分公司的投诉。

二、故障解决思路

1、故障定位:

HIVE 组件的问题分两类:

1.hivemetastore

通过集群的监控页面或者hivemetastore的日志分析查看hivemetastore的并发数量等参数的限制问题

2.hiveserver2

1)咨询查看是不是最近有新增加的任务,通过分析看看不是有异常的SQL语句等程序;

2)通过集群的监控页面或者hiveserver2的日志分析,查看是不是存在参数的问题;

3)审计分析hive的 元数据库 表,是不是存在大量的分区表或者大的全表扫描的表等需要重点关注的审计表等信息

2、故障解决:

既然已经知道是hive组件导致的MySQL元数据库的问题,建议从以下方面着手:

1.从hive组件着手

a.检查是不是最近有新上的任务,没有经过代码审计或者SQL写的不规范的任务,占用资源过多,从而导致集群响应缓慢;

b.检查hiveserver2和hivemetastore的参数,分析其日志,看看是不是由于参数问题导致的集群组件缓慢;

2.从MySQL数据库着手

a.检查MySQL服务器的硬件资源情况,查看CPU、内存、IO、网卡等信息,看看是不是存在使用率过高的情况;

b.对hive的元数据库进行盘点分析,看看是不是有长连接或者占用资源很大的SQL语句运行,从而导致数据库缓慢;

3.从YARN组件着手

a)查看租户队列资源的分配是否合理;

b)检查是否存在有大量的状态不正常的任务。

3、案例说明:

1.如何发现MySQL的元数据库异常故障问题

1)5月6日18点30分,运维人员发现创建目标客户群任务延迟;经过查实,集群响应效率缓慢导致任务延迟;

2)5月6日19点到23点40分,经过分析spark日志、hiveserver日志,NameNode日志,hivemetastore日志,均未发现异常。在CM监控页面,集群巡检各项指标均未发现异常;

3)5月6日23点55分,运维人员发现mysql的元数据库长连接会话较多,且Innod锁数量持续增加未释放;

4)5月7日0点3分,运维人员请求基保部同事协助定位原因,发现是元数据库(MySQL)中存在大数据租户的多个长连接,影响数据库的性能,进而影响集群任务的提交响应效率;经过查实,长连接会话及未释放的Innod锁是由租户user_yddsj(大数据租户)的任务发起;

5)5月7日0点12分,运维人员电话通知大数据租户厂家进行清理;并邮件通知局方协助,要求大数据租户厂家对长连接会话进行清理;

6)5月7日 0点30分,同步邀请H公司大数据产品线专家协助处理,经过大数据产品线专家远程分析,初步定位原因为metastore的并发数量不够,把metastore的并发数量进行源码级别的调整(增大并发数量),在测试环境经过多次部署、调测、验证后,于5月7日20点30分发布到正式环境,21点30分完成了hivemetastore的服务重启。重启后,集群能力恢复正常。但是经过跟踪监测,集群服务性能在23点45分左右持续下降,排除了hivemetastore的并发数量的影响,并于当晚邀请专家次日到现场进行支撑。

7)5月8日8点10分,H公司多位专家到达湖南电信现场,携手定位故障原因,集成专家发现MySQL数据库主机IO占用持续达到99%;

8)5月8日8点30分,通过MySQL专家定位,确认是5月7日发现的长连接会话及未释放的Innod锁仍未释放,这些会话指向的目标表为user_yddsj.volte_mw,经过查询元数据信息,此表有2万多个分区,且租户的执行程序存在全表扫描的情况。导致MySQL数据库主机IO占用持续高水位;

9)5月8日11点19分,运维人员协同局方负责人,通知大数据租户对表user_yddsj.volte_mw进行分区清理。经过局方负责人与大数据租户确认,为尽快恢复集群的服务正常,决定先停止大数据租户的集群服务,且停止其应用程序;

10)5月8日11点40分,大数据租户开始清理user_yddsj.volte_mw表分区。于12点30分收到大数据租户表分区清理完成的通知;

11)5月8日13点30分,运维人员经过一个多小时的观察,集群的服务响应和性能都已经恢复正常。访问元数据库效率恢复正常。

图片

图1:基础保障部同事协助定位长连接问题

图片

图2-1:长连接相关语句,对应用户为大数据开放的租户

图片

图2-2:长连接相关语句,对应用户为大数据开放的租户

图片

图2-3:长连接相关语句,对应用户为大数据开放的租户

图片

图3:5月8日MySQL数据库主机IO高水位

图片

图4-1:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-2:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-3:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-4:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-5:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-6:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-7:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图4-8:5月8日MySQL数据库长连接语句,定位大数据租户表user_yddsj.volte_mw存在2万多个表分区

图片

图5:5月8日定位大数据租户执行程序全表扫描问题

图片

图6:5月8日13点30分 经过一个多小时的观察,集群的服务恢复正常。

三、故障总结

1、问题解决

临时措施:

1)清理表分区,将元数据库MySQL的压力释放;

永久措施:

1)重新评估构建表,将表设计重新建设,特别是分区的设定;

2)将表的清理规则进行设置,防止出现类似情况。

2、总结归纳

1)大数据租户仅清理了HDFS文件,未清理HIVE表分区信息;

2)大数据租户执行程序存在MySQL全表扫描情况;

3)大数据平台租户应用程序上线未纳入租户管理规范

4)大数据平台集群表分区元数据缺少监控。

四、避免问题出现的优化

如何设计执行MySQL的元数据库异常故障问题整改计划 ( 限定完成时间:略 )

1)大数据租户及时清理HIVE表分区信息,配置自动清理脚本;

2)大数据租户对执行程序进行调整,完成volte_mw表分区改造,设计为大分区+小分区;完成执行程序的改造;

3)大数据平台将租户应用程序上线纳入租户管理规范;

4)大数据平台将新增集群表分区元数据监控。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习关键要素:数据集汇总与分享

引言 在深度学习的应用中,数据被认为是最重要的因素之一。因此,选择一个好的数据集对于深度学习的成功至关重要。在选择数据集时,不仅需要关注数据量的大小、多样性以及质量,还要考虑数据集是否代表了所研究问题的真实情况。本文…

保持城市天际线(力扣)贪心 JAVA

给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑。给你一个下标从 0 开始的 n x n 整数矩阵 grid ,其中 grid[r][c] 表示坐落于 r 行 c 列的建筑物的 高度 。 城市的 天际线 是从远处观察城市时,所有建筑物形成的外部轮廓。…

面试总结-webpack/git

说说你对webpack的理解 webpack 是一个静态模块打包器,整个打包过程就像是一条生产线,把资源从入口放进去,经过一系列的加工(loader),最终转换成我们想要的结果,整个加工过程还会有监控&#x…

云计算——存储虚拟化功能

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前期回顾 前言 一.存储虚拟化功能 1.精简磁盘和空间回收 2.快照 (1&a…

0基础学C#笔记08:插入排序法

文章目录 前言一、过程简单描述:二、代码总结 前言 我们在玩打牌的时候,你是怎么整理那些牌的呢?一种简单的方法就是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候,为了…

Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?

索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响,这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁,从而使性能下降。为此,可以采取以下几种方式来减缓这种影响: 1. 限制索引的大小:可以…

Android 视频播放器dkplayer

gihub地址: https://github.com/Doikki/DKVideoPlayer GitHub - Doikki/DKVideoPlayer: Android Video Player. 安卓视频播放器,封装MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音并实现预加载,列表播放,悬浮播放,广…

定量分析计算51单片机复位电路工作原理 怎么计算单片机复位电容和电阻大小

下面画出等效电路图 可以知道单片机内必然有一个电阻RX,为了简化分析,我们假设他是线性电阻(不带电容,电感的支路) 还有一个基础知识: 电容器的充电放电曲线: 还需要知道电容电压的变化是连续…

Android Jetpack Compose 中的分页与缓存展示

Android Jetpack Compose 中的分页与缓存展示 在几乎任何类型的移动项目中,移动开发人员在某个时候都会处理分页数据。如果数据列表太大,无法一次从服务器检索完毕,这就是必需的。因此,我们的后端同事为我们提供了一个端点&#…

11、Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow Pytorch版本

Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow-GPU版本 一、确定版本关系二、安装过程1.安装显卡驱动2、安装CUDA3、安装cudnn4、安装TensorFlow5、安装pytorch 三、卸载 一、确定版本关系 TensorFlow Pytorch推出cuda和cudnn的版本,cuda版本推出驱动可选版本…

【不限于联想Y9000P电脑关盖再打开时黑屏的解决办法】

不限于联想Y9000P电脑关盖再打开时黑屏的解决办法 问题的前言问题的出现问题拟解决 问题的前言 事情发生在昨天,更新了Win11系统后: 最惹人注目的三处地方就是: 1.可以查看时间的秒数了; 2.右键展示的内容变窄了; 3.按…

Oracle database Linux自建环境备份至远端服务器自定义保留天数

环境准备 linux下安装oracle 请看 oracle12c单节点部署 系统版本: CentOS 7 软件版本: Oracle12c 备份策略与实现方法 此次备份依赖Oracle自带命令exp与linux下crontab命令(定时任务) exp Oracle中exp命令是一个用于导出数据库数据和对象的…