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

这篇具有很好参考价值的文章主要介绍了大数据平台中元数据库—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分,运维人员经过一个多小时的观察,集群的服务响应和性能都已经恢复正常。访问元数据库效率恢复正常。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

图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)大数据平台将新增集群表分区元数据监控。文章来源地址https://www.toymoban.com/news/detail-646983.html

到了这里,关于大数据平台中元数据库—MySQL的异常故障解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源铱塔切换MySQL数据库启动报异常

    1.错误日志: 铱塔切换数据库配置为MySQL之后,启动后报错如下: SqlExceptionHelper - Table \\\'iotkit. task_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. rule_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. device_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. virtual_device \\\' doesn\\\'t exist 2.环境:  JDK

    2024年04月23日
    浏览(29)
  • 记一次由于操作失误致使数据库瘫痪的故障分析与解决方案

    2023年8月27日,随着新业务的接入,我们开始进行项目的灰度发布。然而,直到2023年8月31日下午,我们才发现一个新字段并没有进行字段刷新,导致所有数据都是默认值,从而无法继续进行灰度测试。在业务方的要求下,我们需要进行批量更新字段。鉴于我们已经知道了时间

    2024年02月09日
    浏览(33)
  • 解决SpringBoot连接数据库的SSLHandshakeException异常

        在改一个新项目,服务启动时报错了,堆栈信息如下:     这个错误一般是由SSL/TLS握手过程中客户端和服务器之间支持的协议或密码套件不匹配引起的。     检查了下数据库连接串,配置了useSSL=true,表示要求使用SSL/TLS来加密与MySQL数据库之间的连接。     在连接字符

    2024年03月23日
    浏览(31)
  • 大数据平台环境搭建---- Hive&MySql数据库组件配置

    前置环境 Hadoop集群必须部署完成,如果还没有搭建请先前往Hadoop全分布搭建笔记 程序版本 hive 1.1.0 mysql 5.7.25 mysql-connector-java-5.1.39-bin.jar 资源下载 官网下载: mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar :https://downloads.mysql.com/archives/community/  链接:https://pan.xunlei.com/s/VNoQg4wdxda5by6L8Lvug9e

    2024年01月25日
    浏览(49)
  • C++ mySQL数据库连接池(windows平台)

    新手学了C++多线程,看了些资料练手写了C++数据库连接池小项目,自己的源码地址 MySQL数据库编程、单例模式、queue队列容器、C++11多线程编程、线程互斥、线程同步通信和 unique_lock、基于CAS的原子整形、智能指针shared_ptr、lambda表达式、生产者-消费者线程模型 为了提高MySQL数

    2024年03月09日
    浏览(39)
  • 数据库连接bug异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure异常

    1、启动SpringBoot项目出现com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure异常。 2、查询后定位问题是数据库连接不上,服务器异常。 3、方案一:切换数据库为本地地址,重新启动即可。url: jdbc:mysql://127.0.0.1:3306/mysql001?useUnicode=truecharacterEncoding=utf-8useSSL=falses

    2024年02月16日
    浏览(35)
  • Bug解决:获取JDBC连接失败;嵌套异常是java.sql.SQLException:无法从底层数据库获取连接

    出现的问题 Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database! 说白了就是连接数据库出问题了,寻找了一个半小时才发现错误 从头到尾检查了一遍,这里使用的是C3P0连接池。 解决方法 1.如果使用的是c3p0连接池,prop

    2023年04月08日
    浏览(35)
  • Failed to load driver class com.mysql.cj.jdbc.Driver异常-IntellIJ Idea-后端项目连接数据库配置

    前言 :后端项目连接数据库配置时,添加了如下application.properties的数据库连接配置 项目点击运行,就出现以下系列问题 这种情况通常是由于以下原因之—引起的: 1.没有在项目中引入mysql-connectorjar包,或者引入的包版本与JDBC驱动不匹配。解决方法:在项目pom.xml中添加相关依

    2024年02月07日
    浏览(64)
  • Mysql和Oracle数据库死锁查看以及解决

    一、Mysql数据库死锁排查 SQL : SQL: SQL: 示例: 备注:通过查看事务的trx_started(开始时间)来判断该事务的阻塞时间。 SQL  : 备注:线程ID指的是 1.1.3步骤中查询出来的 trx_mysql_thread_id。 SQL : 示例 : 字段解析 : SQL : 示例: SQL : 备注:多个session用逗号隔开。 View Code   造

    2024年01月20日
    浏览(33)
  • MySQL数据库CPU飙升到100%解决方案

    当cpu飙升到100%时,先用操作系统命令top命令观察是不是mysqld占用导致的,如果不是,找出占用高的进程,并进行相关处理。 进入mysql命令行 查看慢查询SQL是否启用:ON是开启,OFF是关闭。 show variables like ‘log_slow_queries’; 开启慢查询日志 set global log_slow_queries = on; 如果是mysql

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包