当前位置: 首页 > 软件库 > 大数据 > >

罗盘(Compass)

大数据任务诊断平台
授权协议 Apache
开发语言 Java TypeScript
所属分类 大数据
软件类型 开源软件
地区 国产
投 递 者 邓俊材
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

罗盘(Compass)是基于 OPPO 内部大数据诊断平台的开源项目,可用于诊断 DolphinScheduler、Airflow 等调度平台上所运行的大数据任务。

罗盘核心功能

罗盘目前已支持以下功能和特性:

  • 非侵入式,即时诊断,无需修改已有的调度平台,即可体验诊断效果。

  • 支持多种主流调度平台,例如 DolphinScheduler、Airflow 或自研等。

  • 支持多版本 Spark、Hadoop 2.x 和 3.x 任务日志诊断和解析。

  • 支持工作流层异常诊断,识别各种失败和基线耗时异常问题。

  • 支持引擎层异常诊断,包含数据倾斜、大表扫描、内存浪费等 14 种异常类型。

  • 支持各种日志匹配规则编写和异常阈值调整,可自行根据实际场景优化。

罗盘已支持诊断类型概览:

诊断维度

诊断类型

类型说明

失败分析

运行失败

最终运行失败的任务

首次失败

重试次数大于1的成功任务

长期失败

最近10天运行失败的任务

耗时分析

基线时间异常

相对于历史正常结束时间,提前结束或晚点结束的任务

基线耗时异常

相对于历史正常运行时长,运行时间过长或过短的任务

运行耗时长

运行时间超过2小时的任务

报错分析

sql失败

sql执行问题而导致失败的任务

shuffle失败

shuffle执行问题而导致失败的任务

内存溢出

因内存溢出问题而导致失败的任务

成本分析

内存浪费

内存使用峰值与总内存占比过低的任务

CPU浪费

driver/executor计算时间与总CPU计算时间占比过低的任务

效率分析

大表扫描

没有限制分区导致扫描行数过多的任务

OOM预警

广播表的累计内存与driverexecutor任意一个内存占比过高的任务

数据倾斜

stage中存在task处理的最大数据量远大于中位数的任务

Job耗时异常

job空闲时间与job运行时间占比过高的任务

Stage耗时异常

stage空闲时间与stage运行时间占比过高的任务

Task长尾

stage中存在task最大运行耗时远大于中位数的任务

HDFS卡顿

stage中存在task处理速率过慢的任务

推测执行Task过多

stage中频繁出现task推测执行的任务

全局排序异常

全局排序导致运行耗时过长的任务

 

罗盘技术架构

罗盘主要由同步工作流层任务元数据模块、同步 Yarn/Spark App 元数据模块、关联工作流层/引擎层 App 元数据模块、工作流任务异常检测模块,引擎层异常检测模块,Portal 展示模块组成。

整体架构图

整体架构分 3 层:

  • 第一层为对接外部系统,包括调度器、Yarn、HistoryServer、HDFS 等系统,同步元数据、集群状态、运行环境状态、日志等到诊断系统分析;

  • 第二层为架构层,包括数据采集、元数据关联&模型标准化、异常检测、诊断 Portal 模块;

  • 第三层为基础组件层,包括 MySQL、Elasticsearch、Kafka、Redis 等组件。

具体模块流程阶段:

(1)数据采集阶段:从调度系统将用户、DAG、作业、执行记录等工作流元数据同步至诊断系统;定时同步 Yarn ResourceManager、Spark HistoryServer App 元数据至诊断系统,标志作业运行指标存储路径,为后续数据处理阶段作基础;

(2)数据关联&模型标准化阶段:将分步采集的工作流执行记录、Spark App、Yarn App、集群运行环境配置等数据通过 ApplicationID 介质进行关联,此时,工作流层与引擎层元数据已关联完毕,得到数据标准模型  (user, dag, task, application, clusterConfig, time)

(3)工作流层&引擎层异常检测阶段:至此已经获得数据标准模型,针对标准模型进一步 Workflow 异常检测流程,同时平台维护着一套沉淀多年的数据治理知识库,加载知识库到标准模型,通过启发式规则,对标准模型的指标数据、日志同时进行异常挖掘,结合集群状态及运行是环境状态,分析得出工作流层、引擎层异常结果;

(4)业务视图:存储、分析数据,提供给用户任务概览、工作流层任务诊断、引擎层作业 Application 诊断,工作流层展示调度器执行任务引发的异常,如任务失败、回环任务、基线偏离任务等问题,计算引擎层展示 Spark 作业执行引发的耗时、资源使用、运行时问题。

  • compass电子罗盘 GPS        这个用过GPS的机油肯定不陌生。           还是 介绍一下i8000的电子罗盘。传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,利用霍尔效应(Hall Effect),利用洛伦兹力造成电流中电子偏向,计算电压变化,然后将感受

  • 引子 这几天一直在忙一个可滑动的转盘的demo,网上也有类似的例子,但是根据老板的需求来改他们的代码,还不如重新写个完全符合需求的插件。 想法很美好,但是新手上路... 效果链接文末 需求 image 这个demo给的非常简单,能转动的地方有三处,内盘、外盘和指针,这三个上的集合的交集产生一个链接,通过中间的按钮跳转。 这个需求乍一看老简单老简单的,但是作为一个菜鸡第一次上道,堪比开碰碰车,头破血

  • 新API切换罗盘不再自动正北,为了支持更多的交互吧。 https://blog.csdn.net/niuba123456/article/details/81124739 使用 MapStatus 更新 rotete 旋转,overlook 鸟瞰。 Button button_location_mode; button_location_mode = (Button) findViewById(R

  • 摘要: 获得该设备的当前朝向。 方法:compass.getCurrentHeadingcompass.watchHeadingcompass.clearWatch 参数:compassSuccesscompassErrorcompassOptions compass.getCurrentHeading 获取罗盘的当前朝向。 简单的 ... 获得该设备的当前朝向。方法: compass.getCu

  • 获得该设备的当前朝向。 方法: compass.getCurrentHeading compass.watchHeading compass.clearWatch 参数: compassSuccess compassError compassOptions compass.getCurrentHeading  获取罗盘的当前朝向。 简单的范例: avigator.compass.getCurren

  • GPS        这个用过GPS的机油肯定不陌生。           还是 介绍一下i8000的电子罗盘。传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,利用霍尔效应(Hall Effect),利用洛伦兹力造成电流中电子偏向,计算电压变化,然后将感受到的地磁信息转换为数字信

  • 解锁时出现compass inconsistent xx°,一般是内部罗盘(飞控内)与外部罗盘(外置GPS内)获取参数不一致所造成的,解决方案如下: 设法将MAG0罗盘关闭,即disable。一般可通过调节参数树来实现。 由于不同PX4版本参数不同,故本次研究方法仅针对Stable Release v1.12.3: 1. 进入参数配置页面 2. 搜索参数"MAG0",可以发现与MAG0相关的诸多参

 相关资料
  • 获得该设备的当前朝向。 方法: compass.getCurrentHeading compass.watchHeading compass.clearWatch 参数: compassSuccess compassError compassOptions compass.getCurrentHeading 获取罗盘的当前朝向。 简单的范例: navigator.compass.getCurren

  • 我正在尝试使用AWS的ECS服务在AWS上启动/运行Dockerfile。我可以在本地运行docker映像,但Fargate启动类型的映像失败。我已经将我的Docker映像上传到ECR,并从中创建了一个集群/服务/任务。 然而,我的群集的任务状态只是简单地读取“DEPROVISIONING(任务启动失败)”,但它没有提供运行映像输出的日志或细节,所以我不知道出了什么问题。如何查找更多信息并诊断EC

  • 在大约14个工作小时后,我有一个云数据流管道失败,下面是一条神秘的日志消息: 谢了!

  • 如果 Flarum 无法安装或者是没有按照预期运行,第一件需要做的事情就是再次检查你的环境是否达到了系统要求。如果你缺失部分 Flarum 的依赖项(例如 PHP 的 fileinfo 扩展),你将需要先处理这些问题。 接下来,你应该花上几分钟在支持论坛和问题追踪器内检索。有可能有人已经汇报了这个问题,或者解决方案正在讨论,或者已经有解决方案。在检索过后,如果你仍然没有发现关于这个问题的信息的话,

  • Composer默认使用Winston日志记录模块,并使用Config模块查找任何配置信息。如果没有找到,那么将使用一组默认值。 如果没有设置配置文件,配置模块会写出警告。例如。WARNING: No configurations found in configuration directory。如果您对默认值感到满意,并且不希望在应用程序中使用配置,则可以使用环境变量来抑制这种情况。在这里查看更

  • 什么是抓取诊断 抓取诊断工具,可以让站长从百度蜘蛛的视角查看抓取内容,自助诊断百度蜘蛛看到的内容,和预期是否一致。每个站点每周可使用70次,抓取结果只展现百度蜘蛛可见的前200KB内容。 抓取诊断工具能做什么 目前抓取诊断工具有如下作用: 1、诊断抓取内容是否符合预期,譬如很多商品详情页面,价格信息是通过JavaScript输出的,对百度蜘蛛不友好,价格信息较难在搜索中应用。问题修正后,可用诊断工