4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解
点击上方 蓝字关注我们
✎ 编 者 按
成立于 2014 年的 Bigo,成立以来就聚焦于在全球范围内提供音视频服务。面对 4 亿多用户,Bigo 大数据团队打造的计算平台基于 Apache DolphinScheduler 调度系统日均处理 7W+ 作业。
Bigo 如何基于 Apache DolphinScheduler 打造离线计算服务平台?Bigo 计算平台负责人在 Apache DolphinScheduler Meetup 2021 上进行了用户案例分享,现将演讲整理如下:
01
建设背景
疫情催生了音视频需求快速上涨,加上 5G 技术的推广,让技术积淀深厚的音视频行业迎来了全新的发展机遇。IDC 数据显示,2020上半年,中国视频云基础设施市场规模达到26.3亿美元,预计到 2024 年将超过 191 亿美元,应用场景主要包括长短视频点播、直播、音视频通信、媒体处理、智能内容等。
成立于 2014 年的 Bigo,成立以来就聚焦于在全球范围内提供音视频服务,如今其旗下全球视频直播社区 Bigo live,短视频内容创作平台 Likee,音视频通讯 imo 服务于全球150 个国家的 4 亿多用户,覆盖实时多人语音/视频+直播+点播场景。
Bigo 内部成立了大数据团队来服务 4 亿多用户,并在其下设立计算平台,为整个公司提供大数据计算服务,支持离线、OLAP、实时等多种业务场景。当前,Bigo 计算平台维护着 2000 台离线集群,每天处理着 7W+ 作业,服务上千个用户。
面对如此大规模的任务,Bigo 计算平台使用了 Apache DolphinScheduler、Oozie、Airflow(主要用于机器学习)、Crontab 等多种调度方式,作业以 Spark 为主,覆盖了 Hive、Python、MR、Shell、Sqoop 等。但基于日常业务实践中的使用体验出发,Bigo 计算平台决定不久后将所有调度任务逐步迁移至 DolphinScheduler。
02
为什么迁移到 DolphinScheduler
多种调度方式既为 Bigo 计算平台带来很多选择,但同时也因为调度框架过多,导致用户的入口分散,而且各种调度系统都存在不同程度的缺点,比如 Oozie 使用起来不友好较难上手,Airflow 基于镜像,对于机器学习用户来说很便利,但是稳定性较差。
Bigo 计算平台的目标很明确,就是要搭建一个离线服务平台,作为用户的统一入口。这个服务平台对调度系统的要求是扩展性、易用性要好,且要有完善的API和活跃的社区支持。
综合调研对比 Oozie、Airflow、DolphinScheduler、Livy、DataSphereStudio、DataWorks 后,Bigo计算平台最终得出结论,DolphinScheduler 在各方面比较优秀,尤其是 API 支持和中文社区的支持。
03
提升用户体验的改进
虽然 DolphinScheduler 在各方面都比较适合使用,但仍有改进的空间,以保证用户体验,尽量兼容用户的使用方式。
1
用户管理
接入 DolphinScheduler 之后,Bigo计算平台第一件事就是打通 OA,免去了注册的步骤,可以更好管理人员流动。
此外,Bigo 计算平台还屏蔽了租户概念,因为群组级别的权限控制在管理员手中,而当实际作业规模较大时,管理员权限控制会带来诸多提交上的不便,因此 Bigo 计算平台屏蔽了租户概念,改用个人账号提交作业。
2
项目管理
原来 DolphinScheduler 要求项目名全局唯一,用户名不能重名,而当项目成千上万时,这个要求会带来不必要的麻烦。对此,Bigo计算平台允许不同项目、资源和数据源重名,去掉了全局唯一。
另外,DolphinScheduler 只能在管理员层面进行项目分享,分享的成本较高,Bigo计算平台针对这一点,将权限下放至个人,非 admin 用户也可以分享资源。
3
工作流管理
工作流页面完成开发、上线、查看一站式操作
原来在 DolphinScheduler 工作流列表页面才能进行上下线,用户在不同页面之间跳转才能完成上线操作,其他平台工作流嵌入到页面更是繁琐。
在此之上,Bigo计算平台进行改进,让用户可以在工作流页面就完成开发、上线、查看一站式操作,免去跳转的麻烦。
工作流历史聚合
工作流随时间的运行状况,在 DolphinScheduler 原来的树形结构上需要把鼠标放在上面才能查看。为优化用户体验,Bigo计算平台在树形图下方添加了一个工作流运行列表,直观地展示工作流每日运行状态,一段时间内的工作运行状况一览无遗。
用户可直达App
点击 link 可以跳转到App,查看页面的真正的日志和执行情况。
4
各种任务开发
除了工作流查看外,Bigo 还进行了各种任务开发改造。
比如支持多种资源方式,不仅支持资源中心上传,还支持直接输入 HDFS 路径,本地上传文件。
支持 sub process 个性化参数,用户在引用子工作流时可以设置个性化参数,更方便开发作业。
04
内核改造,以适应实际业务需求
除了在用户体验上的优化,DolphinScheduler 还进行了内核层面的改造,以更适应其实际业务需求。
目前,Bigo 基于 DolphinScheduler 的计算服务主要面向公司内部用户,包括了 BI 分析、机器学习、音视频处理、数仓等几乎所有技术团队。处理场景需求的特殊性要求 Bigo 从内核层面上进行优化,以适应实际场景需求。
具体来说,Bigo 计算平台所做的 DolphinScheduler 内核改造包括:
1
任务提交去中心化
DolphinScheduler 是通过 worker fork 进程提交作业,提交之后任务等待运行。Worker 作为 client 限制了worker 同时运行任务的上限,SQL依赖hive server/ spark thrift server等,提交都要通过中心化的 server,这会影响系统稳定性和规模性。对此,Bigo 计算平台将提交方式改为分布式提交,将 Spark/Spark SQL/MR 直接提交为Yarn 的任务,Shell/Sqoop 等运行在自己开发的一个APP中,将集中在 worker 上的任务分散到整个集群中,而不是等待任务完成。
2
Worker 支持 Failover
DolphinScheduler worker重启后,作业要杀掉重新提交,但由于作业可能长达十几小时,限制了 worker 同时运行任务的上限,升级重启也会受到一定影响。
在任务提交优化基础上,Bigo 计算平台对任务管理进行了优化,Worker 提交任务到 Yarn 之后,记录 application 信息,Worker 后台异步追踪 application 运行信息,不用重新提交作业。而当一个 worker 失联后,其他 worker 可以接管原先的 application,继续追踪。
3
工作流并发度限制
工作流有一些常见的运行场景,比如部分工作流要求同时只能有一个在运行;部分工作流可以并发运行,但需要设置并发上限;补数时,可能需要补较长区间,以及限制上限,以免对集群造成冲击等。
这些都会对调度系统形成挑战,Bigo 计算平台在后台做的另一件事,是增加了并发度配置。原来,如果当前运行的工作流实例已达上限,需要等待前面的运行结束才能启动新的实例,而加了并发度配置后,可以避免占用过多资源。
4
补数支持触发下游
补数也是常见的场景,这时可能下游数据也需要重算,DolphinScheduler 目前是通过 dependency 设置上下游关系,这会导致补数时下游知道上游,但上游不知道下游,从而导致下游调度受阻。因为对补数有强需求,Bigo 对补数进行了重点改造,包括记录工作流之间依赖关系,补数时可选上游是否触发下游,以及自动计算下游需要何时触发,准确地计算补数。
5
其他改动
其他重要但不详述的改动还包括日志清理,磁盘目录清理,接入电话、微信告警打通等。
05
未来计划
Bigo 计算平台负责人 徐帅 表示,考虑到 DolphinScheduler 2.0 对 Master 的优化将对Bigo 计算平台性能提升产生较大的积极影响,因此 Bigo 计划将于近期更新至 DolphinScheduler 2.0 版本,并与机器学习平台打通,完成调度的无感知迁移。
Bigo 计算平台负责人 徐帅
社区与用户之间互相成就,是 DolphinScheduler 始终秉持的初衷。Bigo 也表示,未来会将对 DolphinScheduler 普适的改动回馈给社区,减少私有代码,紧跟社区,社区也将为 Bigo 顺利实现迁移提供全面的支持。
06
加入社区
随着国内开源的迅猛崛起,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/docs/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
社区官网
https://dolphinscheduler.apache.org/
代码仓地址
https://github.com/apache/dolphinscheduler
您的 Star,是 Apache DolphinScheduler 为爱发电的动力️ ~
添加小助手微信
(Leonard-ds)
加入社区
Apache DolphinScheduler
Apache DolphinScheduler 是 Apache 基金会孵化的顶级项目。作为新一代大数据任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,使整个数据处理流程直观可见”。DolphinScheduler 以 DAG(有向无环图) 的方式将 Task 组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill 任务等操作,并专注于可视化 DAG、调用高可用、丰富的任务类型依赖、任务日志/告警机制和补数 6 大能力。
迄今为止,Apache DolphinScheduler 社区已经有 260+ 位代码贡献者,70+ 位非代码贡献者,其中也不乏其他 Apache 顶级项目的 PMC 或者 Committer。开源社区也在不断发展壮大,微信用户群近 6000 人。截止 2021 年 9 月,已经有 600 + 家公司及机构在生产环境中采用 DolphinScheduler。
欢迎更多伙伴也能参与到开源社区建设中来,让未来 DolphinScheduler 的规划中也有你的一份贡献!
☞在生鲜零售业,DolphinScheduler 还能这么玩!☞荔枝机器学习平台与大数据调度系统“双剑合璧”,打造未来数据处理新模式!
☞最佳实践|联通数科基于 DolphinScheduler 的二次开发
☞DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!
☞重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!☞巨变!a16z 关于新一代数据基础设施架构的深度洞察☞手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程☞Apache DolphinScheduler使用规范与使用技巧分享
点击阅读原文,报名预约!
点个在看你最好看
4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解的更多相关文章
- 挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践
点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler 精彩回顾 近期,初灵科技的大数据开发工程师钟霈合在社区活动的线 ...
- 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率
当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...
- 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?
轻松筹首创了“大病救助”模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题.而在轻松筹这样全球5.5亿用户信赖的大病筹款平台的背后,是日益增长的各种数据.面对这样数据量所 ...
- 估值十亿美元、1.5亿用户,公司CEO却跑路了
转载这篇文章是觉得配图非常好玩的,文章的真实性有待证明 年收益3600万美元的.曾经拥有高口碑产品的Evernote,却正在把一手好牌打烂,距离IPO越来越远,屡屡被业界唱衰. "独角兽公司 ...
- WinRAR存在严重的安全漏洞影响5亿用户
WinRAR可能是目前全球用户最多的解压缩软件,近日安全团队发现并公布了WinRAR中存在长达19年的严重安全漏洞,这意味着有可能超过5亿用户面临安全风险. 该漏洞存在于所有WinRAR版本中包含的U ...
- Facebook超过1亿用户数据泄露,疑与中国黑客组织有关?
Facebook又向用户投放了另一个重磅炸弹,承认其超过1亿用户中的所有用户都应该认定恶意的第三方垃圾信息以及强大的黑客组织泄露了他们的公开个人资料信息. 周三,Facebook首席执行官马克扎克伯格 ...
- Redis如何存储和计算一亿用户的活跃度
1 前段时间,在网上看到一道面试题: 如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量. 觉得很有意思,就仔细想了下 .并做了一系列实验,自己模拟了下 .还是有点 ...
- 基于Apache搭建Nagios图形监控
基于apache 的稍微简单一点么?实验一下子就OK了... 环境: System: [root@losnau etc]# cat /etc/issueRed Hat Enterprise Linux ...
- Java导出数据行写入到Excel表格:基于Apache POI
Java导出数据行写入到Excel表格:基于Apache POI import java.io.File; import java.io.FileOutputStream; import org.ap ...
随机推荐
- Hadoop配置与安装
基础配置 1.关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止fir ...
- 『忘了再学』Shell基础 — 23、其他环境变量配置文件
目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...
- 前端5jQuery
内容概要 jQuery简介 查找标签 jQuery操作标签 jQuery事件操作 jQuery动画效果(了解) 前端第三方框架(基础) 内容详情 jQuery简介
- android系统中有哪些日志
日志目录 android系统中还有很多常用的日志目录.我们可以通过adb命令把这些日志信息提取出来. data/system/dropbox data/system/usagestats data/s ...
- c++ FHQ Treap
前面我们对平衡树有了个大概的了解 关于 Treap Treap=Binary Search Tree + Heap 二叉搜索树 + 二叉堆(一般是小根堆) Treap 每一个节点有两个值 一个值是平衡 ...
- Linux Cgroup v1(中文翻译)(4):Block IO Controller
Block IO Controller 1 概览 cgroup子系统blkio实现了block io控制器.无论是对存储结构上的叶子节点和还是中间节点,它对各种IO控制策略(proportional ...
- 关于 GIN 的路由树
GIN 是一个 golang 常用的 Web 框架,它对 API 比较友好,源码注释也很明确明确,使用起来快速灵活,还有极高的容错率.标题中的路由我们可以简单理解为在浏览器中输入的页面地址,而&quo ...
- 视图模板引擎——Vue【双向绑定】原理剖析
首先我们来了解一下MVC.MVP.MVMM这三大架构模式在前端角度上的理解. MVC分别是 Model(模型).View(视图).Controller(控制器)三个模块.View(视图层)最主要完成前 ...
- SAP BDC 用户输入日期转系统日期格式: CONVERT_DATE_TO_EXTERNAL
BDC中,日期输入格式不正确:可调用FM CONVERT_DATE_TO_EXTERNAL DATA:l_bdcfield LIKE bdcdata-fval."BDC field val ...
- Qt项目开发实例 (含源码)
源码传送门: 啊渊 / QT博客案例 · GitCode 目前QT的研发都是基于windows操作系统的,本文分享在国产操作系统中学QT的路线图,其实学习路线差不多,为了全面的回顾自己的学习知识,打算 ...