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

news2024/12/24 20:44:45

本文的主要目标是解决大数据平台中元数据库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.coloradmin.cn/o/878941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

冠达管理:机构密集调研医药生物股 反腐政策影响受关注

进入8月,跟着反腐事件发酵,医药生物板块呈现震荡。与此一起,组织出资者对该板块上市公司也展开了密集调研。 到昨日,8月以来就有包含南微医学、百济神州、维力医疗、方盛制药等12家医药生物板块的上市公司接受组织调研&#xff0c…

【0810作业】Linux中基于UDP的TFTP文件传输(下载、上传)

一、tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输。 特点: ① 是应用层协议 ② 基于UDP协议实现 ③ 数据传输模式 octet:二进制模式(常用)mail:已经不…

易服客工作室:PressMart – 现代Elementor WooCommerce WordPress商城主题

PressMart是现代且独特的 Elementor WooCommerce WordPress商城主题。它配备了高品质的 05 预建主页,适合任何在线商店,如时装店、电子产品商店、家具店等。 我们使用 Elementor – 一个拖放页面构建器,不需要用户的编码技能即可轻松编辑和构…

图解WebSocket

👏作者简介:大家好,我是爱写博客的嗯哼,爱好Java的小菜鸟 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝个人博客:敬请期待 文章目录 前言一、…

使用phpstorm开发调试thinkphp

1.环境准备 1.开发工具下载:PhpStorm: PHP IDE and Code Editor from JetBrains 2.PHP下载:PHP: Downloads 3. PHP扩展:PECL :: Package search 4.用与调试的xdebug模块: Xdebug: Downloads xdebug模块,如果是php8以…

分类预测 | MATLAB实现GWO-BiLSTM-Attention多输入分类预测

分类预测 | MATLAB实现GWO-BiLSTM-Attention多输入分类预测 目录 分类预测 | MATLAB实现GWO-BiLSTM-Attention多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.GWO-BiLSTM-Attention 数据分类预测程序 2.代码说明:基于灰狼优化算法&#xff08…

【JVM】对String::intern()方法深入详解(JDK7及以上)

文章目录 1、什么是intern?2、经典例题解释例1例2例3 1、什么是intern? String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用&#…

Redis缓存读写策略(三种)数据结构(5+3)

Redis缓存读写策略(三种) Cache Aside Pattern(旁路缓存模式) Cache Aside Pattern 是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。 写: 先更新 db然后直接删除 cache 。 读 : …

爆肝整理,性能测试方法与关键指标以及瓶颈定位思路,一篇贯通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试方法 1、…

Mybatis 源码 ③ :SqlSession

一、前言 Mybatis 官网 以及 本系列文章地址: Mybatis 源码 ① :开篇Mybatis 源码 ② :流程分析Mybatis 源码 ③ :SqlSessionMybatis 源码 ④ :TypeHandlerMybatis 源码 ∞ :杂七杂八 在 Mybatis 源码 ②…

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia 初环境与设备环境准备克隆模型代码部署 ChatGLM-6B完整代码 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术&#x…

Go学习-Day1

Go学习-Day1 个人博客:CSDN博客 打卡。 Go语言的核心开发团队: Ken Thompson (C语言,B语言,Unix的发明者,牛人)Rob Pike(UTF-8发明人)Robert Griesemer(协助HotSpot编译器,Js引擎V8) Go语言有静态语言的…

Sentinel使用实例

不说了,直接上官方文档 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md Sentinel Example 项目说明 本项目演示如何使用 Sentinel starter 完成 Spring Clo…

推荐工具!使终端便于 DevOps 和 Kubernetes 使用

如果你熟悉 DevOps 和 Kubernetes 的使用,就会知道命令行界面(CLI)对于管理任务有多么重要。好在现在市面上有一些工具可以让终端在这些环境中更容易使用。在本文中,我们将探讨可以让工作流程简化的优秀工具,帮助你在 …

Intel汇编和ATT汇编的区别?

一、前缀不同 在 Intel 语法中,没有寄存器前缀或立即前缀。 然而,在 AT&T 中,寄存器的前缀是“%”,而 immed 的前缀是“$”。 Intel 语法十六进制或二进制即时数据分别带有“h”和“b”后缀。 此外,如果第一个十六…

最新AI系统ChatGPT网站程序源码+搭建教程/公众号/H5端/安装配置教程/完整知识库

1、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!…

nginx一般轮询、加权轮询、ip_hash等负载均衡模式配置介绍

一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备: 2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容 1.一般轮询负载均衡 (1&#xff09…

基于深度信念神经网络的矿石产量预测,基于DBN的矿石产量预测,DBN的详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的矿石产量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法进行矿石产量预测 DB…

golang Cobra 快速使用

package mainimport("fmt""os""github.com/spf13/cobra" )func f1(){fmt.Printf("这是主命令的运行函数 ") } func f2(){fmt.Println("这是一个子命令的运行函数") }func main(){var rootCmd &cobra.Command{Use: &quo…

【果树农药喷洒机器人】Part8:果树对靶变量喷药实验

📢:博客主页 【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉 📢:内容若有错误,敬请留言 📝指正…