OPPO 大数据诊断利器“罗盘”开源,支持 DolphinScheduler 等调度任务诊断
点击蓝字 关注我们PART01背景OPPO 大数据平台目前有 20+个服务组件,数据量超 1EB,离线任务数近百万,实时任务数千,数据开发分析师超千人。这也带来了系统复杂度的问题,一方面是用户经常对自己的任务运行状况“摸不着头脑”,不管是性能问题,还是参数配置问题,甚至是一些常见的权限报错问题,都需要咨询平台给出具体的解决方案。另一方面是平台面对各类繁杂任务,运维人员经常需要对任务故障定位和排除,
点击蓝字 关注我们
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.git
cd compass
mvn package -DskipTests
修改配置
cd dist/compass
# 修改数据源和相关配置,如下图
vim bin/compass_env.sh
-
一键部署
./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)