首发于 大数据应用案例
OPPO大数据诊断平台设计与实践

OPPO大数据诊断平台设计与实践

导读 在大数据行业中数据量大、任务多的背景下,如何做智能化、自动化的异常任务识别和分析至关重要。本文就将分享OPPO大数据诊断平台的设计与实践。

全文目录:

1. 背景

2. 技术方案

3. 时间效果

4. 总结与规划


分享嘉宾|戴巍 OPPO 数据平台架构师

编辑整理|依依 哔哩哔哩

内容审核|李瑶

出品社区|DataFun


01/背景

1.OPPO大数据现状



首先介绍一下OPPO大数据的现状。整体大数据的数据量已经超过了一亿,系统组件20+,整体离线任务达到百万级别,实时任务也有数千,整个公司的数据分析师和开发师超过了1000人。数据和任务的复杂情况也带来了系统级的复杂度,其中包括:

2.业界产品对比



现在业界有一些类似的开源产品,比如Dr. Elephant,它是Linkedin开发并开源的,主要用来提高开发人员的效率和增加集群任务调试的高效性。

支持很多种计算引擎,例如Spark,Tez,MapReduce,同时也支持多种调度框架,比如Azkaban,Airflow等。并且能够形成分析报告,作为历史作业和工作流性能统计的指标。

通过我们的实践和测试,发现它存在一些不足之处。首先,它对于新版本的兼容性不够好;另外,支持的Spark诊断指标非常少,目前只有4个;诊断手段也相对较少;最后就是存在一些稳定性风险,因为它需要不断对Spark History的服务接口做频繁的调用,影响了整体的稳定性。

基于这样的背景,我们自研了一套大数据平台的任务诊断系统。

02/技术方案

1.平台特性



我们的平台具有以下一些特性:

诊断规则层面,可以通过效率分析、成本分析以及稳定性分析等,做任务诊断分析。在交互层面,首先提供了我们自己的Web UI,来查看整体的任务情况,也提供了Http API接口,这样可以将我们的任务诊断能力赋能给交互查询、任务调度和数据治理等数据应用。在交互查询上可以帮助开发人员快速做异常发现和任务排查,应用在任务调度上可以做后续任务的不断优化,在数据治理上可以提供健康分的概念,推动数据治理在集团当中的推广。

2.系统架构



系统架构主要分为三层:

3.流程阶段



整体流程包括三大阶段:



最终我们会将相关数据的存储和分析,通过直观、简洁的UI提供给业务方,帮助业务方及时准确地发现问题。

03/实践效果

下面我们来看一下诊断平台在我们公司内部的实践效果。

1.交互设计



交互设计层面,我们做到了非常统一、简洁和直观的Web UI,这样用户可以一眼看到他所关心的任务问题所在,并且我们也会给出一些指导性处理建议。

2.诊断类型丰富

平台提供了较为丰富的诊断类型,针对离线、实时任务的健康度诊断,目前支持了40+ 场景的异常类型判定。整体上可分为四大方面:

3.效率分析案例



在效率分析方面,有一个长尾Task分析的案例。在整体的WEB界面可以明显看出哪些任务耗时是比较长的,拖慢了整个任务的运行时间。平台会给出一些分析和建议,比如是由于单个Task读取数据量过多或者读取数据过慢,如果读取数据量过多,可能是数据倾斜的问题,建议按照数据倾斜方式处理,如果是读取数据过慢,可能是HDFS集群节点负载过高或者是网络丢包等问题,可以联系运维相关同学进行进一步的排查。

4.成本分析案例



在成本分析方面,这里给出了一个CPU浪费分析的案例,在界面上面也能非常直观地看到每个Driver的cores的运行时间和空闲时间,可以设定一个阈值,当空闲时间超过阈值,就会判定为浪费,并且给出一个降低启用CPU数量的建议。

5.稳定性分析案例



在稳定性分析方面,这里给出了一个数据倾斜分析的案例。数据倾斜是Task计算过程中Key分布不均造成的,个别Key的数据特别多,超出计算节点的计算能力,会导致内存溢出,计算资源利用率低,整体作业超时的问题。我们基于自身大量数据处理的经验,对如何处理这种问题进行了总结,如上图中所示。如果发现数据倾斜的异常,会给出相应的处理建议,结合业务方具体的任务去选择恰当的处理方式。

还有一些SQL的常见问题分析。比如没有权限、表不存在、语法错误等,因为我们在任务上线的时候会做一些SQL的校验,但是在运行过程中会出现权限失效,或者是表被修改了等等问题。我们也能够非常明确地给出问题和解决方法,比如重新去申请相应权限,或者修改SQL和表结构等。

6.实时分析案例



再来分享一个实时分析的案例。我们去跑Flink任务的时候,可以做一些诊断,给用户相关的建议,比如Flink参数设置不合理造成的CPU和内存的浪费,使用率是否过多,并且会给出建议值,比如数量建议是多少,任务的并行程度大概是多少,类似这样的诊断建议。

7.降本增效



最终我们通过异常任务、不合理任务的分析,转换成成本口径的统计,给到数据治理,形成健康分统一的口径,进行数据治理。这样在公司内部,通过长期的推进治理,可以看出成本下降明显,任务问题得到了改善。

04/总结与规划

最后来分享一下整体的总结和规划。

OPPO大数据诊断平台主要围绕的是调度引擎和计算引擎两个方面进行智能化定位分析,为用户快速处理和优化任务,为企业降本增效。

技术方面采用了非入侵方案对接其他系统,这样保证了其他系统的安全性。系统架构基于启发式规则定位和分析问题方式,但知识库比较依赖人员经验,目前计划引入一些数据挖掘算法扩大整体检测范围,实现更加智能化的诊断。目前支持Spark和Flink任务问题的诊断,除了OPPO自研的一些调度平台之外,还支持DolphinScheduler、Airflow等开源调度平台。



为了回馈开源社区,并且希望更多人参与进来,共同解决任务诊断的痛点和难题,我们现在已经把一些功能做了开源的处理,项目名称叫做“罗盘”。上图中给出了Github地址和微信群,大家有兴趣可以关注一下。

开源的版本主要支持DolphinScheduler和Airflow两种主流调度平台;同时支持多版本Spark、Hadoop 2.0和3.0任务日志诊断和解析;目前支持14种异常诊断类型;同时支持各种日志匹配规则编写和异常阈值调整,可自己根据实际场景进行优化。

05

问答环节

Q1:CPU浪费是如何计算出来的?

A1:我们之前相关的介绍文档已经通过公众号发出来了,里面会有比较详细的CPU浪费的计算公式。主要就是针对整体空闲时间和运行时间的计算,判断比例的情况,达到一定的阈值之后判断为浪费。

Q2:请问这里面的诊断是如何实现智能化的?使用的是一些什么样的模型?

回答:我们目前是基于知识库,相当于是基于历史的数据处理经验,智能化是我们仍在探索中的工作,后续还会将成果分享出来。


代做工资流水公司海口企业对私流水制作嘉兴签证银行流水 制作许昌流水账单开具上饶入职工资流水代做泉州入职工资流水打印温州查自存银行流水贵阳制作企业银行流水汕头代做对公账户流水济宁工资银行流水打印临沂个人银行流水办理菏泽制作流水账单太原代开在职证明许昌查询个人银行流水九江入职银行流水开具菏泽入职工资流水三亚薪资流水办理沈阳工资流水打印泰安背调流水费用宜春车贷银行流水 查询曲靖房贷银行流水 价格镇江对公银行流水样本贵阳个人流水代开信阳查询在职证明佛山办银行流水修改吉林代办工资流水单三亚查询个人银行流水邯郸打转账流水潮州银行流水电子版报价东莞日常消费流水模板潍坊企业贷流水查询香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化