记一次低级且重大的Presto运维事故

本文纯属虚构,旨在提醒各位别犯类似低级错误。
如有雷同,说的就是你!


文章目录

    • 前言
    • 事件回顾
    • 后续
    • 总结

前言

首先,要重视运维工作和离职人员的交接工作,这个不必多说。一将无能,累死三军!
接下来,我尽可能根据操作记录、配置文件备份和聊天记录,还原这长达两个多月的运维事故。但毕竟我也只是个用户,很多细节内幕并不清楚,部分内容会进行“艺术”加工,但一些明显低级的错误行为,大家应该也能感觉出来,希望各位以此为戒。

事件回顾

图1 Presto配置文件修改备份记录
在这里插入图片描述
图2 Presto用户操作该配置文件记录
在这里插入图片描述
根据图1和图2可以看出以下问题,一是该配置文件修改非常频繁,二是很多修改并没有留下备份,三是不止使用Presto用户操作过该文件,因为有些备份和操作时间对不上。
图3 resource_groups.json.bak
在这里插入图片描述
这是2023年10月30日的备份文件配置,bi队列并行任务限制是60,最大排队数是20。备份的是修改之前配置,这和群里聊天记录也能对上,见下。
*2023年10月30日 09:22,有用户反馈很多任务失败,日志报错:
Too many queued queries for “global.bi”
刚接手运维同事 2023年10月30日 10:37 回复
已经找到问题原因,今晚我们会调整 global.bi 资源组的参数,确保满足高峰查询使用
之前我没有过多关注这句话,今天再看到的时候恍然大悟,从2023年10月30日起,他们就已经走错路了。bi队列的用户,不止我们数据部门批任务和即席查询用,dolphinscheduler上的租户没有几个,全公司的批任务大部分也会选择bi队列的用户作为租户使用。而刚接手的运维同事,将bi队列并行任务数限制从60一路降到15,导致大量任务堆积,进而导致了2023年11月后大量用户反馈Presto慢、不能用。
图4 resource_groups.json.bak.231220
在这里插入图片描述
这是2023年12月20日的备份文件配置,bi队列并行任务限制从60降到20,最大排队数从20涨到45。因为2023年10月30日至2023年12月20日之间修改配置并没有留备份,无法确定哪天修改,可以确定的是2023年12月20日前就已经改成20了。但bi队列是全公司用的最多的队列,竟然被他们拍脑门限制为20,生产集群改的如此随意。更可笑的是,某位人才把问题推给用户写的代码太烂,把用户当傻子,进一步激化矛盾。退一万步讲,写的烂也是一直都烂,集群正常运行多年,任务也正常运行多年,你就没意识到自己最近改了什么东西?另外还有人才归到了即席查询和批处理不能同时使用,同时使用这么多年,你一接手就不能用了是吧?还有任务变多、小文件过多等等借口。
图5 resource_groups.json.bak.20240112
在这里插入图片描述
这是2024年1月12日的备份文件配置,bi队列并行任务限制从最开始60降到15,最大排队数从45涨到75。2024年1月12日的备份是2024年1月8日至2024年1月12日的配置。

后续

在领导英明领导下,我们于2024年1月6日进行了小文件归档操作,截至2024年1月16日,清理了五千万小文件。

hadoop archive -Dmapred.job.queue.name=xxx -archiveName xxx.har -p 

Presto成功的从上午不能用,变成了下午也不能用。写个select 1 都要运行(排队)二十分钟。当然,这和清理小文件无关,某个人才于2024-01-08 21:26:39将bi队列并行任务限制改为15。
在这里插入图片描述
好在他们做对了一件事,2024年1月6日不光清理小文件,还新搭了14个节点的集群。当用户反馈不能用时,让他们使用新集群,成功实现了分流。但是dolphinscheduler上还有大量的任务使用老集群,15的限制还是导致任务积压、排队,问题还是没有解决。
我不是运维人员,一直知道他们改了配置,但不知道他们这么瞎改。了解这一切,是我在2024年1月18日偶然发现一个事,当单个任务实时内存使用超过150GB就会失败。
在这里插入图片描述
而老集群31个节点,单节点256GB,31*256=7936GB,单任务限制最大150GB。当时同时执行的只有19个任务,其它都在排队,就算都是顶格150GB,剩下还有大量资源。
在这里插入图片描述
于是我把这情况反馈到群里,领导@几个运维让回答一下,至今没有任何回复。
虽然没有回答,但他们晚上把限制提高到了20,与此同时,还更换了故障节点(存疑),降低了NameNode 堆内存等。2024年1月19日,Presto老集群突然正常了,但由于他们同时修改较多,且只是把限制从15提高到20,无法确定根源。但有一点可以确定,bi队列限制为15,甚至20都极不合理,大量资源闲置,人为制造排队。从上图可以看出,当时bi队列限制为15,其它队列加一起才19-15=4个任务,bi队列73个排队!

总结

从2023年10月30日到现在,两个多月时间,老Presto集群基本处于上午不能用的状态,甚至后来下午也不能用。不可否认,运维做了一些有效的工作,但如果一开始用户反馈排队过多,只是因为部分节点挂掉,甚至真的因为任务突然增多了,运维去增加节点(从后来搭建14个节点新集群来看,并不是没有服务器),而不是瞎改配置,结果会不会不一样?如果运维修改生产环境配置文件不那么随意、频繁,而是先统计bi队列每天总任务数、并行任务数,根据实际情况调整限制和错开任务执行时间,结果会不会不一样?
很多事宜通不宜堵,有些人什么时候才能明白。
祝愿大家远离低级的人和事。

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

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

相关文章

目标检测难题 | 小目标检测策略汇总

大家好,在计算机视觉中,检测小目标是最有挑战的问题之一,本文给出了一些有效的策略。 从无人机上看到的小目标 为了提高模型在小目标上的性能,本文推荐以下技术: 提高图像采集的分辨率 增加模型的输入分辨率 tile你…

3DMAX初级小白班第一课:菜单栏介绍

基本介绍 这里不可能一个一个选项全部教给大家(毕竟之后靠实操慢慢就记住了),只说一些相对需要注意的设置。 自定义-热键编辑器-热键设置 这里有你所需要的全部快捷键 自定义-自定义UI启动布局 将UI布局还原到启动的位置 自定义-通用单…

【Linux配置yum源以及基本yum指令】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、yum是什么? 二、什么是软件包? 三、三种安装软件包的方式 四、yum的相关操作 4.1、搜索软件 4.2、安装软件 4.3、卸载软件 4.4、那…

操作系统-进程的概念,组成,特征(PCB 程序如何运行)

文章目录 总览进程的概念进程的组成-PCBPCB中存放的内容程序是如何运行的进程的组成-程序段,数据段进程的特征小结 总览 进程的概念 任务管理器:显示运行的进程 打开qq前后 打开三个qq,有三个进程 进程的组成-PCB PCB包含进程的很多信息 …

AI搜索引擎Perplexity来了,谷歌等老牌搜索引擎或许会有新的威胁?

Perplexity AI 是一家 AI 搜索初创公司,它通过结合内容索引技术和大型语言模型的推理能力,提供更便捷和高效的搜索体验。另外,最近很火的小兔子Rabbit R1硬件AI设备中的搜索功能正是这家公司的杰作。在短短一年半的时间里,一个企业…

51单片机1-6

目录 单片机介绍 点亮一个LED 流水灯参考代码 点亮流水LEDplus版本 独立按键 独立按键控制LED亮灭 静态数码管 静态数码管显示 动态数码管显示 模块化编程 调试工具 矩阵键盘 矩阵键盘显示数据 矩阵键盘密码锁 学习B站江协科技课程笔记。 安装keil,下…

Qt配置OpenCV

首先安装好Qt Createor,CMake,OpenCV,我本次使用的是Qt6.3.4和OpenCV4.6.0 Qt Creator清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qtcreator/OpenCV官网下载: https://opencv.org/releases/ 一. 编译OpenCV 首先使用Qt C…

three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程004 - three.js透视相机&#xff08;PerspectiveCamera&#xff09;滚动浏览全景大图</title><script src"js/three.js"&g…

ThinkPHP5.0.0~5.0.23路由控制不严谨导致的RCE

本次我们继续以漏洞挖掘者的视角&#xff0c;来分析thinkphp的RCE 敏感函数发现 在调用入口函数&#xff1a;/ThinkPHP_full_v5.0.22/public/index.php 时 发现了框架底层调用了\thinkphp\library\think\App.php的app类中的incokeMethod方法 注意传递的参数&#xff0c;Refle…

shopee最新选品:Shopee平台上的最新选品策略和方法

在Shopee平台上进行选品是卖家们必须经历的重要步骤。通过精心选择和定位产品&#xff0c;卖家可以提高产品的市场接受度和销售业绩。然而&#xff0c;要在竞争激烈的电商市场中脱颖而出&#xff0c;并不是一件容易的事情。本文将介绍一些在Shopee平台上进行最新选品时可以采用…

打造专业级ChatGPT风格聊天界面:SpringBoot与Vue实现动态打字机效果,附完整前后端源码

大家好&#xff0c;今天用SpringBoot、vue写了一个仿ChatGPT官网聊天的打字机效果。 所有代码地址:gitee代码地址 &#xff0c;包含前端和后端&#xff0c;可以直接运行 使用本技术实现的项目&#xff1a;aicnn.cn&#xff0c;欢迎大家体验 如果文章知识点有错误的地方&#xf…

【源码】医院绩效管理系统,针对医、护、技、药、管不同岗位,可设置不同的核算方法、核算参数

医院绩效管理系统源码 医院绩效管理系统以国家医院绩效管理考核政策法规为依据&#xff0c;结合医院管理实践&#xff0c;以经济管理指标为核心&#xff0c;医疗质量、安全、效率、效益管理为重点&#xff0c;特别强调持续改进&#xff08;PDCA&#xff09;管理理念。实现医院绩…

《WebKit 技术内幕》学习之九(1): JavaScript引擎

1 概述 1.1 JavaScript语言 说起JavaScript语言&#xff0c;又要讲一个典型的从弱小到壮大的奋斗史。起初&#xff0c;它只是一个非常不起眼的语言&#xff0c;用来处理非常小众的问题。所以&#xff0c;从设计之初&#xff0c;它的目标就是解决一些脚本语言的问题&#xff…

[Android] Android架构体系(2)

文章目录 Bionic精简对系统调用的支持:不支持 System V IPC:有限的 Pthread 功能:有限支持C:不再支持本地化和/或宽字符:Bionic新增的特性系统属性硬编码写死的UID/GID内置了DNS解析硬编码写死的服务和协议 硬件抽象层Linux内核匿名共享内存(ASHMem)BinderLoggerION 内存管理内…

ZXing开源库生成二维码

引言 二维码&#xff08;QR Code&#xff09;作为一种快速、高容量、高密度的矩阵条码&#xff0c;已经在各行各业得到广泛应用。ZXing&#xff08;Zebra Crossing&#xff09;是一款由Google开源的Java二维码生成和解析库&#xff0c;提供了丰富的功能和易于使用的API。本篇博…

西瓜书学习笔记——Boosting(公式推导+举例应用)

文章目录 引言AdaBoost算法AdaBoost算法正确性说明AdaBoost算法如何解决权重更新问题&#xff1f;AdaBoost算法如何解决调整下一轮基学习器样本分布问题&#xff1f;AdaBoost算法总结实验分析 引言 Boosting是一种集成学习方法&#xff0c;旨在通过整合多个弱学习器来构建一个…

架构篇08:架构设计三原则

文章目录 合适原则简单原则演化原则小结 成为架构师是每个程序员的梦想&#xff0c;但并不意味着把编程做好就能够自然而然地成为一个架构师&#xff0c;优秀程序员和架构师之间还有一个明显的鸿沟需要跨越&#xff0c;这个鸿沟就是“不确定性”。 对于编程来说&#xff0c;本…

【Docker】在centos中安装nginx

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《【Docker】安装nginx》。&#x1f3af;&#…

7+细胞焦亡+ceRNA+实验验证,如何脱离套路求创新?

导语 今天给同学们分享一篇生信文章“Dissection of pyroptosis-related prognostic signature and CASP6-mediated regulation in pancreatic adenocarcinoma: new sights to clinical decision-making”&#xff0c;这篇文章发表在Apoptosis期刊上&#xff0c;影响因子为7.2。…

【JAVA】我和我的第一个“对象”相遇

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-zAjv1fTLGQmnqncy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…