大数跨境

OPPO 大数据诊断利器“罗盘”开源,支持 DolphinScheduler 等调度任务诊断

OPPO 大数据诊断利器“罗盘”开源,支持 DolphinScheduler 等调度任务诊断 海豚调度
2023-04-06
2
导读:以DolphinScheduler调度平台为例部署罗盘。




点击蓝字 关注我们




PART

01
背景
OPPO 大数据平台目前有 20+个服务组件,数据量超 1EB,离线任务数近百万,实时任务数千,数据开发分析师超千人。这也带来了系统复杂度的问题,一方面是用户经常对自己的任务运行状况“摸不着头脑”,不管是性能问题,还是参数配置问题,甚至是一些常见的权限报错问题,都需要咨询平台给出具体的解决方案。

另一方面是平台面对各类繁杂任务,运维人员经常需要对任务故障定位和排除,由于任务链路长,组件日志多,运维压力大。因此急需对任务进行实时监控和诊断,不仅要能够帮助用户快速定位异常问题,还需给出具体的建议和优化方案,同时还能治理各类“僵尸”和不合理任务,从而达到降本增效的目的。据调研,目前业界尚无成熟的开源任务诊断平台。为此,OPPO 大数据平台开发了大数据诊断平台,通过诊断平台周优化任务实例数超2 万,取得了良好的效果。

“罗盘”(Compass)便是基于 OPPO 内部大数据诊断平台的开源项目(项目地址:https://github.com/cubefs/compass),可用于诊断 DolphinScheduler等调度平台上所运行的大数据任务。
PART

02
罗盘核心功能
罗盘目前已支持非侵入式即时诊断、工作流层异常诊断、多版本 Spark、Hadoop 2.x 和 3.x 任务日志诊断和解析、引擎层异常诊断、日志匹配规则编写和异常阈值调整等功能和特性,并支持多种主流调度平台,例如 DolphinScheduler 或自研调度等。

其中,对于非侵入式,即时诊断功能,罗盘不但实现了对调度平台的解耦,还能在任务运行结束后即时诊断,同时提供了丰富的 UI 展示服务。
这里以 DolphinScheduler 调度平台为例。

从架构上看,MasterServer 主要负责 DAG 任务切分、任务提交监控并持久化任务实例数据到 DB 中,WorkerServer 主要负责任务的执行和提供日志服务,同时在 UI 提供了查看远程日志的功能。为了能够获取任务元数据和相关日志进行诊断,一个方式是在 MasterServer 中监听任务状态事件,另一个方式是订阅 MySQL binlog 日志。为了减少对 DolphinScheduler 的修改,我们采取了第二种方式。

因此只需要在 DolphinScheduler 创建一个工作流,并运行,等待运行结束,用户便可在罗盘上看到该任务运行失败等异常。

PART

03
DolphinScheduler & Compass
DolphinScheduler 是一个分布式和可扩展的开源工作流协调平台,具有强大的 DAG 可视化界面,有着丰富的使用场景,提供 Spark、Hive 和 Flink 等 30+种类型的任务,可靠性高和拓展性强。DolphinScheduler 经历了多年的实践和积累,已经成为了一个成熟的开源项目,并有着广泛的用户群体。
(一)部署体验
这里我们以 DolphinScheduler(2.0.6 版本)为例,体验如何快速集成罗盘。如果你还没有部署 DolphinScheduler,可参考官网部署指南:https://dolphinscheduler.apache.org/zh-cn/docs/2.0.6/%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97_menu。

如果你已经在使用 DolphinScheduler,那么只需要部署罗盘即可。罗盘支持单机和集群部署,如果你想要快速体验罗盘的功能,可使用单机部署模式,罗盘依赖 Kafka、Redis、zookeeper 和 ElasticSearch,需要提前安装,依赖服务完成后即可通过部署脚本进行罗盘部署:
代码编译
  
  
  
git clone https://github.com/cubefs/compass.gitcd compassmvn package -DskipTests
修改配置
  
  
  
cd dist/compass# 修改数据源和相关配置,如下图vim bin/compass_env.sh

  1. 一键部署
  
  
  
./bin/start_all.sh
(二)使用示例
首先在 DolphinScheduler 创建好项目

然后创建一个 SPARK 任务的工作流

最后上线该任务和运行

打开罗盘 Web UI,默认路径为 http://localhost:7075/compass/ ,输入 DolphinScheduler 的账号密码,罗盘自动同步了 DolphinScheduler 用户信息。

最后进入任务运行页面,便可以看到所有的异常任务诊断信息。


参与贡献


随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。


参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:


贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。


社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689


非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22


如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html


来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。


参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

添加社区小助手微信(Leonard-ds) 



添加小助手微信时请说明想参与贡献。


来吧,开源社区非常期待您的参与。



< 🐬🐬 >
更多精彩推荐

Apache DophinScheduler Meetup 成都站— 批流一体与大数据调度最佳实践

优秀用户案例有奖征集 | 活动火热开启,快来投稿!

Apache DolphinScheduler 从 1.3.4 升级至3.1.2 过程中的问题记录及解决方案

DolphinScheduler×长安汽车 | 千万级数据接入能力智能网联汽车云平台引进核心调度系统

去年办了这么多场Meetup都没有你,2023年赶紧安排起来!

DolphinScheduler UI 项目启动提速 2 倍,原来是使用了 Vite!

DolphinScheduler×思科网讯:k8S整合实践,提高大数据处理效率!



我知道你在看

【声明】内容源于网络
0
0
海豚调度
Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
内容 667
粉丝 0
海豚调度 Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
总阅读167
粉丝0
内容667