开发者学堂课程【大数据架构&运维:大数据架构&运维篇(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1204/detail/18171
大数据架构&运维篇
三、大数据运维问题案例
阿里大数据产品 data work 和 MySQL 常遇到的运维问题,例举两个案例,对案例进行解析。
案例1:数据调度、数据集成任务积压的处理。
(1) 问题描述 当用户提交异常的任务或代码不规范,会占用 deadwork 计算集群的大量资源,导致其他任务的产出受影响。更为严重的是会导致集群 hang 住,影响服务质量。
(2) 判断问题的影响面, 当上述情况是有自定义资源组的情况下会是怎么样?如果没有定义资源组的情况下, 会造成全局项目都有影响,任务无法提交。
(3) 问题解决
解决思路是首先确认确定问题存在, 判断影响面是在局部还是在全局,其次确认影响范围。当定位到原因后,对问题进行处理,解决问题,通过测试去确定问题是否已经解决。确认问题解决以后,整个流程才算结束。
在 datasteel 的界面去提交一个 slight 的操作后,可以看到运行日志里一直出现正在等待在云端的 Gateway 资源,此时大量的等待,证明 gateway 的槽位资源有可能已经被异常占用,在大数据管家里的 data work 分站,首先判断是局部问题还是全局问题,实际调度已经没有调度起来,并且饱和度槽位资源水位已经达成81.82%,总槽位达到220的情况下,不可用的达到180,而空闲的事40却并未使用。在确认问题的影响面后,再次登陆data workers 分站-数据工厂-列表,点击项目详情,查看项目绑定的资源组,判断资源组和应用的绑定信息,判断受影响的应用。受影响的空间全部绑定在默认的资源组标识下,此时,可以判断问题的影响面达到全局,把有影响的任务全部释放掉,把有问题的作业全部消掉,从而把正常的任务运行起来。
案例2:任务运行时调度积压处理
(1). 问题描述 用户大量提交任务,而一些不合理的脚本频繁 提交任务,占用了 Mysql 计算集群的资源和管控集群的资源,会导致管控集群下发任务延迟,集群 hang 住,影响服务质量。
(2). 问题影响面,首先要评估风险的半径,判断影响面是项目级别还是整个集群级别。
(3). 问题现象
当登录大数据管家的 maxcomputer 分站,查看管控线程池情况,会出现饱和度红色的信息提示,在集群的饱和度中, SQL 的线程池最大并发是280,正在处理的任务是148,而队列长度已经达到了 3500 +的情况。而此时水位达到1280%,延时等待作业趋势从 14 点后一直很严重,可以判断用户使用了一些异常的作业提交,并且是循环的提交,占用了管控资源,导致任务无法正常消化。
(4). 问题解决
首先确定问题是否存在,判断影响面。目前因为管控资源无法做到隔离,其实影响到全局任务。确认影响范围是全局以后,定位原因是客户异常的作业提交导致的,把异常的作业全部给杀掉,并且限制该用户继续提交异常的作业,限制该用户的提交流程。顺利的提交其他的作业,发现任务已经可以顺利的去运行了。确认解决了问题,问题才算结束。
在大数据管家分站,去查看管控的队列,目前已无管控的任务的积压, 在最大并发 280 的情况下,队伍的长度也从几千+变成了现在的四个,并且正在处理的任务也是四个,水位也处在一个比较正常的状态。此时可以认为问题已经得到了一定的处理,风险已经解除。